编辑.sh脚本中的html文件

时间:2013-04-12 13:35:13

标签: shell sh

我在'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

的末尾

当然,之后保存文件:)

在另一个地方有类似的标签。能否请您举例说明如何插入这些特定的代码行?

感谢

1 个答案:

答案 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以覆盖原始文件。