我正在尝试删除.txt文件中的部分行,这些行都以(Scan .....)开头。我正在尝试的命令是:
(gc A.txt).replace('(Scan*\)', '') | sc A.txt
我是不是搞砸了外卡,或者是PowerShell无法理解我真的试图在Scan *周围找到()并替换它们?
答案 0 :(得分:0)
您使用的.replace()
方法仅替换 literal 字符串,不允许使用任何通配符/正则表达式。以下列方式使用-replace
:
(gc A.txt) -replace '\(Scan[^)]*\)', '' | sc A.txt
\(Scan[^)]*\)
正则表达式匹配:
\(
- 文字(
Scan
- 文字字符序列[^)]*
- 除*
)
)个字符
\)
- 文字)
。替换字符串为空,因为您要删除匹配项。