디렉토리 및 하위 디렉토리의 모든 PHP 파일에서 텍스트를 검색하고 바꾸는 방법

디렉토리 및 하위 디렉토리의 모든 PHP 파일에서 텍스트를 검색하고 바꾸는 방법

.php디렉터리의 모든 파일을 반복적으로 반복하고 특정 텍스트 패턴을 검색하고 바꾸는 쉘 스크립트를 찾고 있습니다 .

검색 패턴은 꽤 길기 때문에(5000자 이상) 편의를 위해 다른 텍스트 파일에 저장할 수 있습니다. 또한 슬래시 문자도 포함되어 있습니다.

편집: 첫 번째 부분을 이해한 것 같습니다.

find . -name "*.php"

그렇다면 이 파일 내에서 어떻게 검색하고 바꾸나요?

답변1

이는 sed와 xargs를 잘 조합하면 쉽게 수행할 수 있습니다.

find . -name "*.php" | xargs -n 1 echo

xargs의 힘을 보여줄 것입니다.

그런 다음 샘플 파일에서 내부 변경(-i) 또는 백업 변경(-i.bak)을 사용하여 정규식을 테스트할 수 있습니다. 패턴/교체에 이미 문자가 있는 경우 "/"를 다른 문자로 바꿀 수도 있습니다.

결국 다음과 같아야 합니다.

pattern=`cat /path/to/pattern`; replacement=`cat /path/to/replacement`
find . -name "*.php" | xargs -n 1 sed -i -e "s|$pattern|$replacement|g"

답변2

노력하다:

find . -name "*.php" -exec sed -i "s/$(cat /path/to/pattern.txt)/$(cat /path/to/replacement.txt)/g" {} \;

pattern검색할 패턴 replacement이고 는 이를 대체할 텍스트입니다.

파일을 "제자리에서" 편집 하는 옵션 -i. sed편집하기 전에 파일의 백업을 생성하려면 를 사용하십시오 -i'.bak'.

답변3

perl -p -i -e 's/originalString/targetString/g' `find . -name '*' -type f`

관련 정보