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\">/' %  

관련 정보