我在'docs / index.html'上有静态的 html 文件,有大约200行代码。 我需要使用.sh脚本在2个位置添加 html标记。我知道有命令 sed 编辑文件,但无法弄清楚它是如何使用的。
我需要添加
<li><a class="reference" href="#front-end-docs">Front end documentation</a></li>
<li><a class="reference internal" href="#indices-and-tables">
或将我的标记附加到行号 137
的末尾当然,之后保存文件:)
在另一个地方有类似的标签。能否请您举例说明如何插入这些特定的代码行?
感谢
答案 0 :(得分:1)
让我们看看我是否正确理解了您的问题:
$ cat testfile
one
two
<li><a class="reference internal" href="#indices-and-tables">
four
five
$ sed '3s|\(.*\)|<li><a class="reference" href="#front-end-docs">Front end documentation</a></li>\1|' testfile
one
two
<li><a class="reference" href="#front-end-docs">Front end documentation</a></li><li><a class="reference internal" href="#indices-and-tables">
four
five
将3s
与相关的行号进行交换,例如137s
- 这会告诉sed
您希望替换发生在哪一行。
你之前写了 add或追加,所以我不确定你是否真的要附加字符串或将其添加到行前面,所以将\1
移到你需要的地方。上面的命令捕获整个行3
,您可以在替换字符串中通过\1
引用该行。
提供所需的输出后,将-i
开关添加到sed
以覆盖原始文件。