[英]Using find and sed to do batch find/replace using HTML tags
我需要在我網站上所有頁面(.html和.htm)的結束標記之前添加一個javascript標記。 我在這里使用了另一個問題的指導,但是我的命令不起作用:
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 .
我認為問題與正則表達式有關,我需要轉義特定字符嗎?
是的,模式和替換包含/
( https:
之后的https:
),這會使sed
混淆。
您需要對它們進行轉義,但是對sed
命令使用不同的定界符可能會使它更具可讀性:
's@</head>@<script (etc.) ;</script></head>@g'
此外,某些sed
實現(在BSD系統(如OS X)上)需要-i
標志的參數。 您可以通過指定''
為它提供一個空字符串。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.