리눅스 터미널에서 여러 파일에 있는 텍스트 내용을 동시에 바꾸고 싶은 경우가 있습니다. 한 파일을 열어가면서 일일히 바꾸기 명령을 사용할 수도 있겠지만, 파일이 많고 여러 군데 흩어져 있을 경우 작업 시간이 매우 길어지기 때문에 권장되지 않을 수 있습니다.
아래 명령어를 사용하면 여러 텍스트를 한 번에 변경할 수 있습니다.
find . [변경할 파일들이 있는 디렉토리 경로] -exec perl -pi -e 's/[찾을 텍스트]/[바꿀 텍스트]/g' {} \;
find
와 perl
명령어로 정규식에 의해 텍스트를 변경먼저 /Path/
에는 변경할 파일들이 존재하는 디렉토리의 위치입니다. 해당 위치에 존재하는 모든 파일을 검색하게 됩니다.
이후 perl 스크립트를 사용하여 정규식에 의해 텍스트 변환을 진행합니다.
여기서 s/Find/Replace/g
는 터미널 텍스트 에디터 vi 또는 vim에서 사용되는 문자열 바꾸기 명령어와도 같습니다.
cd [변경할 파일들이 있는 디렉토리 경로] sed -i 's/[찾을 텍스트]/[변경할 텍스트]/g' *
sed -i
사용 -i
옵션을 붙이면 반영할 내용이 파일에 즉시 덮어씌워지게 됩니다. 마찬가지로 s/aaa/bbb/g
는 텍스트 에디터에서 사용되는 바꾸기 명령어입니다.
리눅스 명령어 - kill, killall 리눅스 kill 명령어는 특정 프로세스를 종료해주는 명령어입니다. 백그라운드에서 실행되고 있는…
JavaScript는 역사가 긴 스크립트 프로그래밍 언어입니다. 세월이 흐르면서 많은 자바스크립트 표준이 만들어졌고, 현재는 많은 문법적…
NodeJS 테스트 프레임워크인 Mocha는 비동기 테스트를 지원합니다. 간혹 특정 테스트 스크립트를 작성하고 실행하면 아래와 같이…
언제부턴가 윈도우 11을 처음 설치할 때 마이크로소프트(Microsoft) 계정 로그인을 강제로 요구하게 되었습니다. 물론 마이크로소프트 계정이…
애플 에어팟 프로 2 (AirPods Pro 2) 케이스에는 스피커가 내장되어 있습니다. 그런데 간혹 아무 것도…