셈틀/Linux
리눅스 여러 파일 내 문자열 치환
소하랑
2011. 12. 1. 19:26
1. 현재 경로로부터 하위 폴더까지의 파일들 내에 "lion"이란 문자열을 "tiger"로 변경하는 경우
2. 현재 경로로부터 하위 폴더까지의 "cpp"파일들 내에 "lion"이란 문자열을 "tiger"로 변경하는 경우
3. 현재 경로로부터 하위 폴더까지의 파일들 내에 "//#define"이란 문자열을 "#define"(즉, "//"를 제거)으로 변경하는 경우
비슷하게 큰따옴표(")와 같은 기호는 \" 와 같이 써서 검색어로 쓸 수 있다.
find . -exec perl -pi -e 's/lion/tiger/g' {} \;
2. 현재 경로로부터 하위 폴더까지의 "cpp"파일들 내에 "lion"이란 문자열을 "tiger"로 변경하는 경우
find . -name "*.cpp" -exec perl -pi -e 's/lion/tiger/g' {} \;
3. 현재 경로로부터 하위 폴더까지의 파일들 내에 "//#define"이란 문자열을 "#define"(즉, "//"를 제거)으로 변경하는 경우
find . -exec perl -pi -e 's/\/\/#define/#define/g' {} \;