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

问题描述 投票:0回答:3

我正在网上查找有关正则表达式和 sed 用法的信息。 我还打开了 sed 的手册。 尽管如此,我还是在这里发布这个问题,因为我确信有人经常使用这两个问题,他们可能可以在我找到解决方案之前回答这个问题。

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

脑海中浮现出某种图案吗?

regex sed
3个回答
6
投票

试试这个 sed:

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

或者这个更好的 sed 命令:

sed 's/#.*$//'

4
投票

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

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

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

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

2
投票

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

find . -name '*.html' -print0 | xargs -0 sed -i 's/#main//g'
© www.soinside.com 2019 - 2024. All rights reserved.