sed 명령을 사용하여 코드 찾기 및 바꾸기

sed 명령을 사용하여 코드 찾기 및 바꾸기

여러 파일에 (내부적으로) PHP 코드 조각이 있는데 <? php ... ?>이를 삭제하고 싶습니다.

코드를 변수에 넣어 보았습니다.

var="<?php [some code in here] ?>"

그런 다음 다음을 실행하십시오.

find . -type f -name '*.php' -exec sed "s|$var| |" {} \;

또는

find . -type f -name '*.php' -exec sed -i 's/'"$var"'.*/'"$str"'/g' {} \;

(여기서 str="")

이를 수행할 수 있는 방법이 있습니까?

답변1

이것을 시도하되 -i먼저 제거하여 제대로 작동하는지 확인하십시오.

var='echo rand(1, 10);'  # dummy code, change to whatever.
sed -i 's/<? php '"${var}"' ?>//' *.php

노트:

  • 코드는 $var한 줄의 코드로 간주됩니다.
  • 코드에 작은 '따옴표가 포함되어 있으면 다음과 같이 이스케이프 처리하세요 \'.
  • 위의 내용에서는 공백 변형이 문제가 되지 않는다고 가정하지만 문제가 될 수 있는 경우가 많습니다.

관련 정보