본문 바로가기

linux

[220730] linux 여러 파일에서 문자열 찾아 바꾸기

 

여러 개 파일에서 특정 문자열을 찾아서 바꿔야 하는 상황이 생길 수 있다. 

find 명령어와 sed 명령어를 응용해서 쉽게 찾아바꾸기를 할 수 있다. 

find [대상 경로] -name [파일명] -exec sed -i '[찾아바꾸기 명령어]' {} \;

ex) 
find . -name "*.sh" -exec sed -i '%s/pattern/string/g' {} \;

 

1. 파일을 찾는다 

find . -name '.sh'

 

 

2. 찾은 파일에 대해 sed를 실행한다. 

sed를 사용하면 vi처럼 파일 편집 작업을 할 수 있다. 

-i 옵션을 사용하면 파일의 변경된 내용을 출력하지 않고 해당 파일의 내용을 변경한다. 

exec sed -i '%s/pattern/string/g' {} \;

 

s 명령어의 경우 이전 포스팅에서 정리했으니 링크를 첨부한다. 

https://travel2develop.tistory.com/60 

 

[220728] linux vi 찾아 바꾸기 (find and replace)

1. vi 찾아바꾸기 리눅스에서 찾아바꾸기는 :s 명령어를 사용해서 할 수 있다. 명령모드에서 아래 명령어를 입력한다. :[range]s/{pattern}/{string}/[flags] [count] :[검색범위]s/{찾는 문자열}/{바꿀 문자열}/[

travel2develop.tistory.com

 

 

 

 

참고자료 

https://www.lesstif.com/lpt/linux-sed-6979751.html 

https://seokk.tistory.com/59

https://jhnyang.tistory.com/287

https://www.geeksforgeeks.org/sed-command-in-linux-unix-with-examples/