찾기 & 명령줄에서 여러 문서의 텍스트 바꾸기

Anonim

명령줄에 익숙하고 여러 텍스트 문서 그룹에서 단어, 구, URL 또는 문자를 찾고 바꿔야 하는 상황에 처한 경우 perl이 그 일을 아주 잘 수행합니다. 간단한 명령 문자열은 단일 문서에 있든 여러 문서 그룹에 걸쳐 있든 텍스트에 대한 그룹 일괄 찾기 및 바꾸기를 매우 빠르게 수행합니다.

명령줄의 많은 것과 마찬가지로 확인 프로세스가 없으므로 명령을 시작하기 전에 구문이 올바르게 설정되었는지 확인해야 합니다. 그렇지 않으면 다른 찾기 및 바꾸기를 수행해야 할 수 있습니다. 오타를 수정하기 위해.

기본 명령 구문은 다음과 같습니다. perl -pi -w -e 's/THIS/THAT/g;' /path/to/files.txt

For a 단일 단어 예, 모든 .txt 파일에서 "ogre"의 모든 인스턴스를 "cornbread"로 교체해야 하는 경우 "Documents" 폴더 내에서 다음 명령을 사용합니다.

perl -pi -w -e 's/ogre/cornbread/g;' ~/Documents/.txt

전체 구문 찾기 및 교체의 예의 경우 전체 문장 "The Chocolate Factory"를 교체한다고 가정해 보겠습니다. ”와 Documents 디렉토리에 저장된 “Films”로 시작하는 .txt 파일 그룹의 “The Wizard of Oz”:

perl -pi -w -e 's/초콜릿 공장/오즈의 마법사/g;' ~/Documents/Films.txt

찾기 및 바꾸기가 즉시 수행됩니다. cat 및 grep을 사용하여 다음을 확인하여 변경 사항을 다시 확인할 수 있습니다.

"

cat ~/Documents/Films124.txt |grep 오즈의 마법사"

분명히 이것은 상당히 발전된 기술이며 예, TextWrangler 및 BBEdit와 같은 GUI 앱을 통해 보다 사용자 친화적인 방식으로 여러 문서를 통한 일괄 찾기 및 바꾸기를 수행할 수 있지만 때로는 명령줄이 더 빠를 수 있습니다. 이와 같은 빠른 작업 및 기타 유사한 작업을 위해 추가 다운로드가 필요하지 않습니다.

훌륭한 트릭에 대해 Lifehacker에게 큰 엄지손가락을 치켜세웁니다.

Update: 'sed' 명령은 명령줄을 통해 빠른 찾기 및 바꾸기를 수행하는 또 다른 방법입니다. sed를 다루는 것은 대부분 다른 기사의 주제이지만 이 작업에 sed를 사용하는 기본 구문은 조금 더 간단하므로 기억하기 쉽습니다.

sed -i 's/THIS/THAT/g' /path/to/files.txt

방법은 옳고 그름이 없으니 perl을 쓰느냐 sed를 쓰느냐는 개인의 취향이 됩니다.

찾기 & 명령줄에서 여러 문서의 텍스트 바꾸기