我有这个noempty. txt
Caption=http://support.microsoft.com/?kbid=3150513
CSName=DC04
Description=Update
FixComments=
HotFixID=KB3150513
InstallDate=
InstalledBy=NT AUTHORITY\SYSTEM
InstalledOn=11/29/2022
Name=
ServicePackInEffect=
Status=
例如,行“FixComments=”或“InstallDate=”或“name=”,我必须在每行中添加单词“none”
我试过了
(Get-Content -Path c:\path\noempty.txt) | ForEach-Object {$_ -Replace '=\s', '=NONE'} | Set-Content -Path c:\path\noempty2.txt
但它不起作用
有什么建议吗?非常感谢亚历克斯
(Get-Content -Path c:\path\noempty.txt) | ForEach-Object {$_ -Replace '=\s', '=NONE'} | Set-Content -Path c:\path\noempty2.txt
型
例如,行“FixComments=”或“InstallDate=”或“name=”,我必须在每行中添加单词“none”
1条答案
按热度按时间8hhllhi21#
您可以读取整个文件,匹配您感兴趣的部分,然后在替换中使用
$0
后跟NONE
的完全匹配。模式匹配:
(?m)
启用多行的内联修饰符^
字符串开始[^\s=]+
匹配1+次非空格字符,=
除外=
逐字匹配[\p{Zs}\t]*
匹配可选的水平空白字符$
字符串结束请参见regex matches。
产出
如果您不想在等号后面保留可能的尾随空格,可以使用捕获组,并在替换中使用组1,而不是整个匹配:
型
请参见group 1 matches。