使用Linux命令行删除多个文件中的多个HTML行

时间:2012-12-14 15:29:17

标签: regex linux command-line html-parsing

我在Linux服务器上有1000多个html文件,所有文件都超过1000行 大多数文件都有需要删除的html代码的特定部分。

我需要删除的部分看起来是这样的:

<div class="LoginOuterCssClass" id="ctl07">
    ...
</div>

是否有一些脚本或命令行解决方案?

以下命令没有帮助:

X,Ys/search/replace/g
1,2s/\([a-z]*\), \([a-z]*\)/\2 \1/ig
s/<[^]*>//g

帮助我非常感谢!

1 个答案:

答案 0 :(得分:2)

在一个文件上尝试以下sed命令,看看它是否符合您的要求:

sed -n '/<div class="LoginOuterCssClass" id="ctl07">/{:a;N;/<\/div>/!ba;N;s/.*\n//};p' file.html

要在多个文件上运行此功能并进行就地编辑,请运行find并通过sed将文件传递给xargs,如下所示:

find /some/path -name "*.html" -print0 | xargs -0 sed -i -n '/<div class="LoginOuterCssClass" id="ctl07">/{:a;N;/<\/div>/!ba;N;s/.*\n//};p'