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

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

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.