使用 Grep 进行多次查找和替换

使用 Grep 进行多次查找和替换

假设我有 90 个 HTML 文件,我必须在每个文件的头部添加一个新的 JS 脚本链接。现在,我可以使用一些代码编译器的 F&R 引擎

喜欢:

find: </head>
replace it with: link to JS script</head>

但是我不喜欢这个解决方案,因为之后的代码很混乱。

我想知道 - 如何使用 grep 在特定目录中的所有 .html 文件的标签前插入新的脚本链接?

答案1

grep不会替换或修改文件。使用sed

sed -i 's|</head>|link to JS script</head>|' *.html

怎么运行的

-i告诉 sed 就地修改文件。

最重要的sed命令是 substitute。它的形式为s|old|new|其中old是正则表达式。在这里,我们</head>用替换link to JS script</head>

*.html告诉 sed 对 shell 在当前目录中找到的所有 html 文件进行操作。

答案2

你可以在 Ex 模式下使用 Vim:

for q in *.html
do
  ex -sc '%s.</head>.link to JS script&.|x' "$q"
done
  1. %选择所有行

  2. s代替

  3. x保存并关闭

相关内容