[shell] grep 로 하위디렉토리 전체 문자열 검색

보통 grep은 하나의 디렉토리에서만 문자열을 검색할 수 있습니다.

가끔 디렉토리 구조 전체에서 원하는 문자열을 검색하고 싶을

경우가 있죠? 이런 경우에 find 명령과 함께 사용을 해서 원하는

결과를 얻을 수가 있어요.

예를 들어,

find . -exec grep love {} \\; -print

라고 치면 현재디렉토리 구조 밑에 있는 모든 파일에서

love라는 문자열을 검색할 수 있습니다.

{}는 find 명령이 찾은 파일이름이 들어가는 곳을 지정하는 것이며,

\\;는 -exec 옵션의 끝임을 알리는 겁니다.

이거 잘쓰면 유용하죠…@^^@

서진우

슈퍼컴퓨팅 전문 기업 클루닉스/ 상무(기술이사)/ 정보시스템감리사/ 시스존 블로그 운영자

You may also like...

3 Responses

  1. 김무성 말해보세요:

    find와 grep 명령어로 이렇게 사용하는 방법을 알려주셔서 감사합니다.

    그런데 위의 커멘드 입력시 출력이 되지 않고 다음과 같이 입력하였을 때만 출력이 되었습니다.

    find . -exec grep love {} \; -print

    좋은 정보 알려주셔서 감사합니다.

  2. 서진우 말해보세요:

    좋은 지적이며, 좋은 팁이네요.
    실제 find ./ -type f -exec grep {} \; 구문만으로는 해당 keywork 가 포함된 파일이
    존재하는지만을 확인할 수 있죠.
    find ./ -type f -exec grep
    {} \ -print 와 같이 -print 옵션을 추가하면 어떤 파일에
    해당 keyword 가 있는지도 확인이 가능합니다.

    좋은 답변 감사합니다.

페이스북/트위트/구글 계정으로 댓글 가능합니다.