我正在尝试删除一个以(scan .....)开头的.txt文件中的某些行。我尝试的命令是:
(gc A.txt).replace('(Scan*)', '') | sc A.txt
我是用通配符搞砸了,还是PowerShell无法理解我实际上是在尝试在扫描*上找到()并替换它们?
您使用的是仅替换字面字符串的.replace()
方法,不允许任何通配符/正则表达式。使用以下方式使用-replace
:
(gc A.txt) -replace '(Scan[^)]*)', '' | sc A.txt
(Scan[^)]*)
正则匹配:
-
(
-字面的(
-
Scan
-字面炭序 -
[^)]*
-零或更多(*
)chars以外的其他)
-
)
-a字面)
。
替换字符串是空的,因为您要删除匹配项。