【发布时间】:2021-07-25 14:27:57
【问题描述】:
我正在使用 WGET 刻录 PHP 网站的静态副本。我想在每个文件的每个<a href 中删除对 <a href="path/project-name.html">Project Name</a>,我想改为<a href="path/project-name">Project Name</a>。
grep -rl index.html . | xargs sed -i 's/index.html//g' 命令非常适合删除所有链接中的每个 index.html。
但我无法使用命令grep -rl *.html . | xargs sed -i 's/*.html//g' 为每个.html 链接工作。
对我的正则表达式的任何帮助将不胜感激。
【问题讨论】:
-
's/*.html//g'是错误的,因为您在 LHS 中输入了一个全局模式,其中需要一个正则表达式模式。你要匹配的模式是什么? -
谢谢,@wiktor。所以任何链接,例如
<a href="path/project-name.html">Project Name</a>,我想改为<a href="path/project-name">Project Name</a>。 -
试试
grep -rl *.html . | xargs sed -i -E 's/(href="[^"]*)\.html"/\1"/g'
标签: regex command-line grep wget xargs