我正在使用Perl来搜索和替换多个正则表达式: 当我执行以下命令时,出现错误:
prompt> find "*.cpp" | xargs perl -i -pe 's/##(\W)/\1/g' -pe 's/(\W)##/\1/g'
syntax error at -e line 2, near "s/(\W)##/\1/g"
Execution of -e aborted due to compilation errors.
xargs: perl: exited with status 255; aborting
多个-e
在Perl中有效,那么为什么这不起作用?有解决方案吗?
答案 0 :(得分:36)
允许多个-e
。
您错过了';'
find "*.cpp" | xargs perl -i -pe 's/##(\W)/\1/g;' -pe 's/(\W)##/\1/g;'
Perl语句必须以;
结尾。
块中的最终语句不需要终止分号。
因此,没有-e
的单个;
可以使用,但如果您有多个;
语句,则必须添加-e
。