正则表达式和sed从数百个文件中删除所有出现的字符串

时间:2011-05-02 18:58:34

标签: regex sed

我正在浏览网页以获取有关正则表达式和sed用法的信息。我也有sed的手册打开。不过,我在这里发布这个问题是因为我确信有人经常使用这两个问题,以便在我制定解决方案之前他们可以回答这个问题。

我有几百个HTML文档,其中包含以下链接:
http://www.example.com/subfolder/abc.asp?page=1#main
我需要删除“#main”

是否会出现一种模式?

3 个答案:

答案 0 :(得分:2)

试试这个sed:

sed 's/^\(.*\)#.*$/\1/'

或者这个更好的sed命令:

sed 's/#.*$//'

答案 1 :(得分:0)

假设#main足够具体,可以进行简单的查找和替换:

find . -name '*.html' -print0 | xargs -0 sed -i 's/#main//g'

答案 2 :(得分:0)

这是一个在命令行上使用perl的代码片段。它不是sed,但我手边有它:

perl -i -pe 's/#main//' *.html

要运行它并进行备份,您可以使用:

perl -pi.bak -e 's/#main//' *.html