ใช้ -replace บนไพพ์ใน powershell


12

ฉันต้องการทดสอบการแทนที่ก่อนที่จะใช้ดังนั้นฉันพยายามเขียนคำสั่งออนไลน์อย่างรวดเร็วเพื่อดูว่าผลลัพธ์คืออะไร อย่างไรก็ตามฉันไม่แน่ใจว่าไวยากรณ์คืออะไร สิ่งที่ฉันต้องการจะทำคือสิ่งที่ชอบ

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

ไวยากรณ์ PowerShell ที่ถูกต้องสำหรับสิ่งนี้คืออะไร

ฉันรู้ว่าฉันสามารถทำได้$a = cat fileและทำการแทนที่$aแต่ฉันต้องการเก็บมันไว้ในบรรทัดเดียว

คำตอบ:


16

สิ่งนี้ควรทำเคล็ดลับมันจะผ่านทุกบรรทัดในไฟล์และแทนที่ "a" ด้วย "b" ใด ๆ แต่คุณจะต้องบันทึกมันกลับเป็นไฟล์หลังจากนั้น

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

4

ในการใช้ตัวดำเนินการPowershell -replace (ซึ่งใช้ได้กับนิพจน์ทั่วไป) ให้ทำดังนี้

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

โปรดสังเกตว่าตัวดำเนินการ -replace ใช้การจับคู่ regex ในขณะที่ตัวอย่างต่อไปนี้จะใช้การค้นหาและแทนที่ข้อความที่ไม่ใช่ regex ตามที่ใช้นั้นString.Replace วิธีการของ. NET Framework

cat file | % {$_.replace("abc","def")} # string.Replace uses text matching
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.