Sử dụng -replace trên đường ống trong powershell


12

Tôi muốn thử nghiệm một sự thay thế trước khi tôi sử dụng nó, vì vậy tôi đang cố gắng viết một lệnh trực tuyến nhanh để xem đầu ra là gì. Tuy nhiên, tôi không chắc cú pháp là gì. Những gì tôi muốn làm là một cái gì đó như

cat file | -replace "a", "b"

Cú pháp powershell chính xác cho điều này là gì?

Tôi biết rằng tôi cũng có thể làm $a = cat filevà sau đó thay thế $a, nhưng tôi muốn giữ điều này trên một dòng

Câu trả lời:


16

Điều này sẽ thực hiện thủ thuật, nó sẽ đi qua tất cả các dòng trong tệp và thay thế bất kỳ "a" nào bằng "b", nhưng bạn sẽ cần lưu lại vào một tệp sau đó

cat file | % {$_.replace("a","b")} | out-file newfile

4

Để sử dụng toán tử Powershell -replace (hoạt động với các biểu thức chính quy), hãy làm điều này:

cat file.txt | % {$_ -replace "\W", ""} # -replace operator uses regex

lưu ý rằng toán tử -replace sử dụng so khớp regex, trong khi ví dụ sau sẽ sử dụng tìm và thay thế văn bản không phải regex, vì nó sử dụng phương thức String.Replace của .NET Framework

cat file | % {$_.replace("abc","def")} # string.Replace uses text matching
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.