Tôi có một tệp văn bản đơn giản và tôi cần một tập lệnh PowerShell để thay thế một số phần của nội dung tệp.Thay thế nội dung của một tệp văn bản bằng một regex trong PowerShell
kịch bản hiện tại của tôi là như sau:
$content = Get-Content -path "Input.json"
$content -Replace '"(\d+),(\d{1,})"', '$1.$2' | Out-File "output.json"
Có thể viết nó trong một dòng mà không có sự biến nội dung, như thế này?
Get-Content -path "Input.json" | ??? -Replace '"(\d+),(\d{1,})"', '$1.$2' | Out-File "output.json"
Tôi không biết cách sử dụng đầu ra của lệnh get-content đầu tiên trong lệnh thứ hai mà không có biến $ content? Có biến số quyền hạn tự động nào là
Có thể thực hiện thay thế nhiều hơn một trong một đường ống không.
Get-Content -path "Input.json" | ??? -Replace '"(\d+),(\d{1,})"', '$1.$2' | ??? -Replace 'second regex', 'second replacement' | Out-File "output.json"
Cảm ơn bạn! Đó là điều tôi muốn! –
Mặc dù nó chỉ hoạt động trên một dòng tại một thời điểm '" \ 'n", "b" -replace ('\ n', 'a') 'sẽ trả về 'a', 'b'. '" \ 'n", "b" -replace ('\ nb', 'a') 'Sẽ vẫn trả về" \ 'n", "b" –
@TheRedPea: Bạn có thể làm điều đó với tất cả các dòng cùng một lúc bằng cách sử dụng Thay vào đó, 'Get-Content -Raw'. Sau đó bạn nhận được một chuỗi duy nhất trở lại. – Joey