Perl命令行搜索并替换为多个表达式
我正在使用Perl搜索和替换多个正则表达式: 当我执行以下命令时,我得到一个错误:Perl命令行搜索并替换为多个表达式,perl,Perl,我正在使用Perl搜索和替换多个正则表达式: 当我执行以下命令时,我得到一个错误: prompt>find“*.cpp”| xargs perl-i-pe的/###(\W)/\1/g'-pe的/(\W)##/\1/g” 在-e第2行“s/(\W)##/\1/g”附近出现语法错误 由于编译错误,-e的执行已中止。 xargs:perl:退出,状态为255;流产 有多个-e在Perl中是有效的,那么为什么这不起作用呢?是否有解决方案?允许使用多个-e 您缺少;' find "*.cpp" | xa
prompt>find“*.cpp”| xargs perl-i-pe的/###(\W)/\1/g'-pe的/(\W)##/\1/g”
在-e第2行“s/(\W)##/\1/g”附近出现语法错误
由于编译错误,-e的执行已中止。
xargs:perl:退出,状态为255;流产
有多个
-e
在Perl中是有效的,那么为什么这不起作用呢?是否有解决方案?允许使用多个-e
您缺少;'代码>
find "*.cpp" | xargs perl -i -pe 's/##(\W)/\1/g;' -pe 's/(\W)##/\1/g;'
Perl语句必须以结尾代码>。
块中的Final语句不需要终止分号。
因此,单个-e
没有代码>将起作用,但您必须添加
当您有多个-e
语句时。您可以用一个替代项替换这两个正则表达式:s/##(?=\W)|(?@TLP我是Perl的不速之客;请你解释一下?=和?它们是什么意思?它们是环顾四周的断言,你可以在中阅读更多关于它们的内容。它们是零宽度的,所以它们只检查,不删除。非常感谢你的回答。我当时正绞尽脑汁想弄清楚这一点。或者xargs Perl-I-pe的s/##(\W)/\1/g;s/(\W)#/\1/g;