use*_*905 -1 regex windows perl
我试图替换文件中的字符串,但我的过程似乎是删除字符串,而不是用我想要的替换它
例
perl -ne 'print unless s/ServerIp=${Solid.host}/ads/;' needsToBeReplaced.prp > blah.txt
Run Code Online (Sandbox Code Playgroud)
将删除
"ServerIp = $ {Solid.host}"并将该行留空,而不是在其位置打印"ads"
我顺便在Windows上运行.此外,我在正则表达式中没有第三个参数,因为我只想更改第一个匹配项.我也试过了
perl -pi -e 's/ServerPort=${Solid.port}/ads/;' needsToBeReplaced.txt
Run Code Online (Sandbox Code Playgroud)
但是我得到了许可错误,所以编辑到位是不行的
仅在替换不成功时才打印该行.如果要始终打印,请不要使用unless:
perl -pe "s/ServerIp=\${Solid.host}/ads/;" needsToBeReplaced.prp > blah.txt
Run Code Online (Sandbox Code Playgroud)
你也应该逃避美元符号以防止它被Perl解释.
另请注意,必须在MS Windows上使用双引号.