develog

[mac] grep --include, sed 로 특정 확장자 파일 내용 바꾸기 본문

카테고리 없음

[mac] grep --include, sed 로 특정 확장자 파일 내용 바꾸기

냐옴 2023. 11. 20. 16:02

 

확장자가 .sh 인 파일을 찾고 '찾을문자열' 을 '바꿀문자열' 로 변경한다

 

grep 사용
# 확장자가 .sh 인 파일 대상으로 '찾을문자열'을 찾는다
grep -r --include='*.sh' '찾을문자열' .

# 확장자가 .sh, .txt 인 파일에서 찾는다
grep -r --include='*.sh' --include='*.txt' '찾을문자열' .

# 확장자가 .sh, .txt 인 파일에서 찾는다 (다른 방법)
grep -r --include='*.'{sh,txt} '찾을문자열' .

 

grep -rl 로 파일을 찾고 xargs sed 로 내용을 변경한다

# 파일을 찾고 내용을 변경한다
grep -rl --include='*.sh' '찾을문자열' . | xargs sed -i '' 's/찾을문자열/바꿀문자열/g'

 

find 사용
find . -name '*.sh' | xargs sed -i '' 's/찾을문자열/바꿀문자열/g'

# 경로에 공백이 있는 경우도 성공
find . -name '*.sh' -exec sed -i '' 's/찾을문자열/바꿀문자열/g' {} \;

 

Comments