[英]How to find and replace these HTML sentences using grep and perl/sed
我有一行HTML包含换行符和内容,我想替换这样的句子:
<li class="menu-581"><a href="../you-your-me-nm.html" title="You &amp;
">You & Your Service Dog</a></li>
在">You
之前注意换行符
我有第一部分,找到片段
pcregrep -r -M -l '<li class="menu-581">(.|\n)*?</li>' *
现在,我想将它提供给Perl以用新文本替换相同的正则表达式
我正在尝试这个perl片段,但它不起作用(我将它保存在名为test.txt的文件中):
ls test.* | xargs perl -pe 's/<li class="menu-581">(.|\n)*<\/li>/new/' -pi
任何线索?
cat -e test.html
<p>$
<li class="menu-581"><a href="../you-your-me-nm.html" title="You &amp;$
">You & Your Service Dog</a></li>$
</p>$
然后
perl -0777 -pe 's{\Q<li class="menu-581"><a href="../you-your-me-nm.html" title="You &amp;
">You & Your Service Dog</a></li>}{}g' test.html
<p>
</p>
添加-i
标志以进行就地编辑:
perl -0777 -i -pe '...' test*
编辑:这个我实际测试过,所以它按预期工作:
ls test.* | xargs perl -pe 'BEGIN{undef $/;};s/(<li class="menu-581">)(.*)(<\/li>)/$1$3/gs'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.