지난 글에서는 파일명 검색 및 파일 내 문자열 찾는 방법을 알아보았다.
-[AIX] 파일 이름 검색 및 파일 내 문자열 검색(단일 | 여러 개 AND OR)
UNIX 서버를 운영하다 보면 문자열을 치환해야 하는 경우가 많다.
치환해야 할 문자열 개수가 적다면 직접 vi 편집기 등으로 수정하면 되겠지만, 수십에서 수천 개가 된다면 곤란한 상황이 생긴다.
또한, 치환할 문자열의 위치를 모르는 경우에도 일일이 검색을 한 후 바꿔야 하는 번거로움이 있다.
이 두 가지 문제를 한꺼번에 해결하기 위한 명령어를 소개한다.
특정 경로 내 모든 파일(또는 필터 된 파일)의 특정 문자열 모두 치환하기
#find . -type f -name '*' -exec perl -pi -e 's|문자열(기존)|문자열(대체)|g' {} \;
ex)find . -type f -name '*' -exec perl -pi -e 's|green|pink|g' {} \;
=> 현재 디렉터리 및 하위 모든 디렉터리 파일 내에 green이라는 문자열을 pink로 치환한다.
예시를 위한 샘플 파일은 다음과 같다.
각 파일의 text는 다음과 같다.
-test1.txt
apple banana
blue green
one two three four
-test2.log
apple banana
blue green
one two three four
-test3.txt
green
green red
green red grey
명령어 실행
명령어 실행 후 각 파일 텍스트는 다음과 같다.
-test1.txt
apple banana
blue pink
one two three four
-test2.log
apple banana
blue pink
one two three four
-test3.txt
pink
pink red
pink red grey
'IT | OS > UNIX' 카테고리의 다른 글
[UNIX] 리눅스 7z 파일 압축 해제 및 압축하기(설치 방법 포함) - Linux, AIX (0) | 2019.11.23 |
---|---|
[UNIX] IBM x3650 RAID5 구성하기 (0) | 2019.11.18 |
[UNIX] 서버 기본 스펙 확인(OS, CPU, MEMORY, DISK) (0) | 2019.10.20 |
[UNIX]하드링크 심볼릭 링크 차이점 및 명령어 정리(생성, 삭제) (2) | 2019.10.18 |
[UNIX] 파일 이름 검색 및 파일 내 문자열 검색(단일 | 여러 개 AND OR) (0) | 2019.10.11 |