Menggunakan-ganti pada pipa di PowerShell

12

Saya ingin menguji pengganti sebelum menggunakannya, jadi saya mencoba menulis perintah online cepat untuk melihat apa outputnya. Namun, saya tidak yakin apa itu sintaks. Yang ingin saya lakukan adalah sesuatu seperti

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

Apa sintaks PowerShell yang benar untuk ini?

Saya tahu bahwa saya juga bisa melakukan $a = cat filedan kemudian mengganti $a, tapi saya ingin menyimpan ini pada satu baris

David mengatakan Reinstate Monica
sumber

Jawaban:

16

Ini harus melakukan trik, itu akan melalui semua baris dalam file, dan mengganti "a" dengan "b", tetapi Anda harus menyimpannya kembali ke dalam file setelahnya

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

Untuk menggunakan operator Powershell -replace (yang bekerja dengan ekspresi reguler) lakukan ini:

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

perhatikan bahwa operator -replace menggunakan pencocokan regex, sedangkan contoh berikut akan menggunakan teks non-regex mencari dan mengganti, karena menggunakan metode String.Replace dari .NET Framework

cat file | % {$_.replace("abc","def")} # string.Replace uses text matching
politus
sumber