[shell] grep 로 하위디렉토리 전체 문자열 검색
보통 grep은 하나의 디렉토리에서만 문자열을 검색할 수 있습니다.
가끔 디렉토리 구조 전체에서 원하는 문자열을 검색하고 싶을
경우가 있죠? 이런 경우에 find 명령과 함께 사용을 해서 원하는
결과를 얻을 수가 있어요.
예를 들어,
find . -exec grep love {} \\; -print
라고 치면 현재디렉토리 구조 밑에 있는 모든 파일에서
love라는 문자열을 검색할 수 있습니다.
{}는 find 명령이 찾은 파일이름이 들어가는 곳을 지정하는 것이며,
\\;는 -exec 옵션의 끝임을 알리는 겁니다.
이거 잘쓰면 유용하죠…@^^@
find와 grep 명령어로 이렇게 사용하는 방법을 알려주셔서 감사합니다.
그런데 위의 커멘드 입력시 출력이 되지 않고 다음과 같이 입력하였을 때만 출력이 되었습니다.
find . -exec grep love {} \; -print
좋은 정보 알려주셔서 감사합니다.
좋은 지적이며, 좋은 팁이네요. {} \; 구문만으로는 해당 keywork 가 포함된 파일이 {} \ -print 와 같이 -print 옵션을 추가하면 어떤 파일에
실제 find ./ -type f -exec grep
존재하는지만을 확인할 수 있죠.
find ./ -type f -exec grep
해당 keyword 가 있는지도 확인이 가능합니다.
좋은 답변 감사합니다.