2013-04-12 125 views
1

我使用~200行代碼在'docs/index.html'處有靜態文件html。 我需要添加html標籤在2個地方使用.sh腳本。我知道有命令sed 來編輯文件,但無法弄清楚它是如何使用的。在.sh腳本中編輯html文件

我需要前

<li><a class="reference internal" href="#indices-and-tables">

<li><a class="reference" href="#front-end-docs">Front end documentation</a></li>

添加或添加自己的廣告代碼的行數

當然和結束,之後保存文件:)

而在另一個地方的類似標籤。你可以給我一個例子,說明如何使用特定的代碼行來插入?

謝謝

+0

這看起來很相似:http://stackoverflow.com/a/7764055/1983854 – fedorqui

+0

Downvoter,是什麼原因? – Feanor

回答

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你想要進行替換的哪一行。 您之前添加了或添加了,所以我不確定是否實際上是要附加字符串還是將其預先添加到行中,因此請將\1移動到任何需要的位置。上述命令捕獲整行3,您可以通過替換字符串中的\1引用。

一旦它給出所需的輸出,將-i開關添加到sed以覆蓋原始文件。