찾기만 할 때 문법은 다음과 같다.

find 검색할 디렉토리 -name "*" | xargs grep 검색할 내용.
ex) find /home/xxxx/yyyy -name "*" | xargs grep ttf


** 2016.03.15
근데 위에 방법에 문제가 있는지.. 잘 안되는 것 같다. 그냥 grep 만 사용해도 된다.

grep -r "xxxx" 디렉토리경로
ex) grep -r "너구리" .


-r 은 하위 디렉토리까지 모두(Recursively) 검사하라는 뜻이다.

원문은 이 곳에.

바꾸기까지 하려면 응용이 필요하다.
예를 들어, 한 디렉토리 내에 모든 파일을 검색하고, 파일 내용에 있는 특정 문자열을 다른 문자열로 바꿔주고 싶다면 다음과 같이 한다.

먼저 바꾸고자하는 파일들이 있는 특정 디렉토리로 이동한다.
 find . -type f -exec sed -i 's/찾는 문자열/바꿀 문자열/g' {} \;


예) find . -type f -exec sed -i 's/lucid/maverick/g' {} \;


만약 모든 파일이 아니고 특정 파일만 찾는 것이라면, 첫번째처럼 조건을 주면 된다.
예) find /etc/apt/sources.list.d -iname '*.list' -exec sed -i 's/lucid/maverick/g' {} \;

이렇게 되면, 각 파일에 포함되어 있던 lucid 문자열이 maverick 으로 모두 바뀐다.

이 부분은 이 곳 을 참고했다.

[출처] http://egloos.zum.com/nemonein/v/4686258 by 아무도안

'리눅스 명령어' 카테고리의 다른 글

ldd - 공유 라이브러리 의존관계 확인  (0) 2016.12.29
특정 파일내 문자열 치환 2  (0) 2016.10.13

+ Recent posts