我正在尝试使用perl替换文件中没有任何内容的注释文本行。像这样:
## Some text ##
我试过这个命令:
perl -p -i -e 's/## Some text ##//g' file.php
但那并没有奏效。有没有办法用那么长的空格来做呢?
答案 0 :(得分:1)
如果您想保留该行,请删除文字:
$ perl -pi -e 's/## Some text\s+##//'
如果您想完全删除该行:
$ perl -ni -e 'print unless /## Some text\s+##/'
答案 1 :(得分:1)
如果你想删除只有评论的所有行,并且使用领先的#字符创建评论,那么你所要做的就是:
perl -i -ne 'print unless (m/^\s*#/);' file_name
m匹配使用^(行首)\ s *(零或多个空格)
另一方面,如果要删除该特定行,则使用-n代替-p,如下所示:
perl -i -ne 'print unless (m//## Some text #/);' file_name
你的代码没有“工作”的原因是-p选项总是会给你打印。 类型:
perldoc perlrequick
和
perldoc perlretut
有关reg的更多信息。表达式。类型:
perldoc perlrun
有关-n和-p选项的更多信息。