[Linux] 하위 디렉토리 파일 내용 일괄변경 sed 사용방법
리눅스에서 개발을하거나 파일을 관리하거나 할때 특정 디렉토리 하위 경로에서 검색되는 파일들의 내용들중
A라는 문자열을 B라는 문자열로 일괄 변경할때 sed 명령을 사용합니다.
명령어
현재 디렉토리를 기준으로 하위경로에 있는 *.SQL 확장자 파일에 대하여 A 문자열을 B 문자열로 변경합니다.
find ./ -name "*.SQL" -exec sed -i "s/A/B/g" {} \;
테스트를 해보기 위해 DIR1, DIR2, DIR3 이라는 디렉토리 3개를 생성하고 각각의 디렉토리 내부에 동일한 내용의
쿼리문을 4개씩 생성하였습니다.
터미널에서 grep 명령으로 검색을 해보면 아래와 같이 나오는데
"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 으로 설정하면 됩니다.
find ./ -iname "*.SQL" -exec sed -i "s/GENDER/LOCATION/g" {} \;
이번엔 확장자 대소문자 구분없이 모두 정상적으로 변경된것을 확인할수 있습니다.
반응형
'Linux' 카테고리의 다른 글
리눅스 명령어 sed 옵션 설명과 사용 방법 (0) | 2023.11.13 |
---|---|
패키지 관리자 Yum Repository 사용 방법 (0) | 2023.11.13 |
[Linux] 심볼릭링크(Symbolic link) 만들기 ln -s (0) | 2022.01.27 |
[Linux] CentOS, Redhat yum repository 저장소 등록 (0) | 2021.12.07 |
[Linux] 사용자 계정 생성과 sudo 권한 주기 (0) | 2021.06.15 |
댓글