2

我在 '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行的末尾

当然,在那之后保存文件:)

和另一个地方的类似标签。你能给我一个例子来说明如何使用这些特定的代码行来插入吗?

谢谢

4

1 回答 1

3

让我们看看我是否正确理解了您的问题:

$ 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 before 或 append,所以我不确定您是否真的打算将字符串附加或将其添加到行中,因此将 移动\1到您需要的任何地方。上面的命令捕获了您可以在替换字符串3中引用的整行。\1

一旦它提供了所需的输出,添加-i开关sed以覆盖原始文件。

于 2013-04-12T14:42:05.543 回答