2016-07-07 12 views
0

私のサイトのすべてのページ(.htmlと.htm)の終了タグの直前にjavascriptタグを追加する必要があります。私はここで別の質問から指導を使用していたが、私のコマンドが機能していません。findと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' 

、(OS XのようなBSDシステム、上の)いくつかのsedの実装はの引数が必要です-iフラグ。 ''を指定すると、空の文字列を与えることができます。

+0

まだ受け取り中です: sed:1: "./index.html":コマンドコードが無効です。 – Chris

+0

@Chris Ah、 '-i'フラグは引数を必要とします。 ''''を使います(一重引用符で空の文字列)。 – Kusalananda

+0

@Chris回答が更新されました。一般的な注意点として、テスト時には '-i'を使用しないことをお勧めします。 – Kusalananda

関連する問題