
성공하지 못한 채 여러 파일에서 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\">/' %