2016-07-07 108 views
0

我需要在我網站上所有頁面(包括.html和.htm)的結束標記之前立即添加一個javascript標記。我已經使用指導從這裏另外一個問題,但我的命令不工作:使用查找和sed使用HTML標記進行批量查找/替換

find . -name "*.htm*" -print | xargs sed -i 's/<\/head>/<script language="javascript" src="https://secure.appprovider.com.js"><\/script><script language="javascript">InitiateCall('767576styisgsjgshshskshjkshkshs');<\/script><\/head>/g' 

我得到:

sed: 1: "./index.html": invalid command code . 

我認爲這個問題是與正則表達式做,我需要逃跑的特定字符?

回答

1

是的,圖案和替換包含/https:後面的那個),這會混淆sed

您需要轉義這些,但使用不同的分隔符爲sed命令可使其更易於閱讀:

'[email protected]</head>@<script (etc.) ;</script></head>@g' 

另外,一些sed實現(在BSD系統,就像OS X)需要的參數-i標誌。您可以通過指定''來給它一個空字符串。

+0

我還在: sed:1:「./index.html」:無效的命令代碼。 – Chris

+0

@Chris啊,'-i'標誌需要一個參數。使用''''(單引號中的空字符串)。 – Kusalananda

+0

@Chris答覆已更新。在一般情況下,我建議在測試時不要使用'-i'。 – Kusalananda