仅使用整个单词在文本文件中查找和替换批处理文件?

时间:2017-11-08 12:40:23

标签: powershell

我正在编写一个脚本,在某一点上必须签入文本文件并删除某些字符串。到目前为止,我有这个:

powershell -Command "(gc myFile.txt) -replace 'foo', 'bar' | Out-File -encoding ASCII myFile.txt"

唯一的问题是,它可以找到并替换但不会一起删除该行。

第二个问题是,我说要删除包含Mark的行,它不需要删除类似Markus的行。

我不知道PowerShell界面是否可以实现这一目标?

1 个答案:

答案 0 :(得分:3)

您当前的代码只会将foo替换为bar,这是replace所做的。

如果匹配整行,则需要采用不同的方法,几乎​​向后,因为您可以使用notmatch输出与过滤器不匹配的任何行 - 有效地删除它们。

此外,使用正则表达式word boundaries只会匹配Mark但不会匹配Markus

(Get-Content file.txt) | Where-Object {$_ -notmatch "\bMark\b"} | Set-Content file.txt
相关问题