成功せずに複数のファイルで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\">/' %