HTMLタグをSEDに置き換える

HTMLタグをSEDに置き換える

成功せずに複数のファイルでhtmlを置き換えるためにsedを使用しようとしています。これを交換する必要があります:

<link rel='shortcut icon' href='/admin/img/favicons/favicon.ico' type='image/x-icon'>

これで:

<link rel="icon" href="/admin/img/logo.svg">

これは私が試した最後のコマンドですが、常にエラーが発生します。

#find . -type f -name "*.php" -exec sed -i'' -e 's/<link rel='shortcut\ icon' href='\/admin\/img\/favicons\/favicon.ico' type='image/x-icon'>/<link rel\="icon" href\="admin/img/logo.svg">/g' {} +
sed: -e expression #1, char 42: unknown option to `s'

助けてもらえますか?

ベストアンサー1

問題は"キャラクターですが、/その一部を見逃してしまいます。 [脱出してください]

sedで:

sed -E 's/<link.*/<link rel=\"icon\" href=\"\/admin\/img\/logo.svg\">/'

私はxargsよりもそれを好む:

find ./ -type f -name "*.php" | xargs -I% sed -E paste-comand-from-above %  

だから最終的に:

find ./ -type f -name "*.php" | xargs -I% sed -E 's/<link.*/<link rel=\"icon\" href=\"\/admin\/img\/logo.svg\">/' %  

おすすめ記事