在Powershell中的管道上使用-replace


12

我想在使用替换项之前先进行测试,所以我试图编写一个快速的在线命令来查看输出结果。但是,我不确定语法是什么。我想做的是

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

正确的Powershell语法是什么?

我知道我也可以做$a = cat file,然后在上进行替换$a,但我想将其放在一行上

Answers:


16

这应该可以解决问题,它将遍历文件中的所有行,并将任何“ a”替换为“ b”,但是之后您需要将其保存回文件中

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

4

要使用Powershell -replace运算符(与正则表达式一起使用),请执行以下操作:

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

请注意,-replace运算符使用正则表达式匹配,而以下示例将使用非正则表达式文本查找和替换,因为它使用了.NET FrameworkString.Replace方法。

cat file | % {$_.replace("abc","def")} # string.Replace uses text matching
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.