본문 바로가기
Linux

[Linux] 하위 디렉토리 파일 내용 일괄변경 sed 명령 사용방법

by 정권이 내 2022. 4. 5.

[Linux] 하위 디렉토리 파일 내용 일괄변경 sed 사용방법

 

리눅스에서 개발을하거나 파일을 관리하거나 할때 특정 디렉토리 하위 경로에서 검색되는 파일들의 내용들중

A라는 문자열을 B라는 문자열로 일괄 변경할때 sed 명령을 사용합니다.

 

명령어

현재 디렉토리를 기준으로 하위경로에 있는 *.SQL 확장자 파일에 대하여 A 문자열을 B 문자열로 변경합니다.

find ./ -name "*.SQL" -exec sed -i "s/A/B/g" {} \;

 

테스트를 해보기 위해 DIR1, DIR2, DIR3 이라는 디렉토리 3개를 생성하고 각각의 디렉토리 내부에 동일한 내용의

쿼리문을 4개씩 생성하였습니다.

 

img

 

터미널에서 grep 명령으로 검색을 해보면 아래와 같이 나오는데

img

 

"SELECT NAME, AGE, GENDER FROM USERS;" 라는 쿼리문 내용에서 GENDER 라는 문자열을 LOCATION 이라

는 문자열로 일괄 변경해보겠습니다. 다만 특수한 점이 있다면 DIR3 디렉토리 하위의 파일들은 SQL이 아닌 sql

확장자입니다.

find ./ -name "*.SQL" -exec sed -i "s/GENDER/LOCATION/g" {} \;

 

파일 대소문자 구분없이 변경

변경이 되긴했는데 SQL 확장자 파일만 변경이 되었습니다. 이렇게 동일한 확장자 일때 대소문자 구분도 하지 않고

싶다면 find 옵션에서 -name-iname 으로 설정하면 됩니다.

img

 

find ./ -iname "*.SQL" -exec sed -i "s/GENDER/LOCATION/g" {} \;
img

 

이번엔 확장자 대소문자 구분없이 모두 정상적으로 변경된것을 확인할수 있습니다.

반응형

댓글