[英]Perl search and replace NOT working
我正在尝试替换文件中的字符串,但是我的程序似乎正在删除字符串,而不是用我想要的字符串替换
例
perl -ne 'print unless s/ServerIp=${Solid.host}/ads/;' needsToBeReplaced.prp > blah.txt
将删除
“ ServerIp = $ {Solid.host}”,只需将该行留空,而不是在其位置打印“ ads”
我正在Windows中运行。 另外我在正则表达式中没有第3个参数,因为我只想更改第一个参数。 我也尝试过
perl -pi -e 's/ServerPort=${Solid.port}/ads/;' needsToBeReplaced.txt
但出现权限错误,因此无法进行就地编辑
仅当替换不成功时才打印该行。 如果要始终打印,请不要使用, unless
:
perl -pe "s/ServerIp=\${Solid.host}/ads/;" needsToBeReplaced.prp > blah.txt
您还应该转义美元符号以防止Perl对其解释。
另请注意,在MS Windows上必须使用双引号。
现在,如果替换成功,它将返回一个true值,这意味着unless
为true, unless
将不会打印任何内容。 您可以这样做:
perl -ne 's/ServerIp=${Solid.host}/ads/; print;' needsToBeReplaced.prp > blah.txt
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.