繁体   English   中英

如何使用grep和perl / sed查找和替换这些HTML句子

[英]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;amp;
">You &amp; 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;amp;$
">You &amp; 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;amp;
">You &amp; 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM