IT개발/Linux & Unix2008. 5. 15. 19:57

find, grep 명령어 사용하기

find 와 grep을 조합하여 사용하면 원하는 파일에서 찾고자하는 구문을 바로 검색할수 있다.

[citylock@localhost linuxTest]$ find . -name "*.[ch]" -exec grep main {} \;
void main()
void main()
int main(int argc, char **argv)

=> 현재 디렉토리에서 .c .h 파일을 대상으로 main 이라는 단어를 검색한다.
이 결과를 보면 main 이 있는 라인이 출력된 것을 볼수 있다. 하지만 어떤 파일에서
어느줄에 위의 구문이 있는 알수 없다. 이를 해결하기 위해서 grep에 있는 옵션을 이용한다.

[citylock@localhost linuxTest]$ grep -RIwHn main *
1.c:4:void main()
2.c:4:int main(int argc, char **argv)
unchanged.c:3:void main()

-RIwHn 옵션을 추가하면 파일명과 행번호가 함께 출력되는 것을 볼수 있다.
grep 옵션에 대해서 살펴보면,

  -R : 재귀적으로 디렉토리 탐색
  -I  : 이진파일 건너뛰기
  -w : 전체단어(whole word) 일치
  -H : 파일 이름 출력
  -n : 행번호 출력

이제 find문과 grep의 옵션을 이용하여 검색해보자

[citylock@localhost linuxTest]$ find . -name "*.[ch]" -exec grep -RIHn main {} \;
./1.c:4:void main()
./unchanged.c:3:void main()
./2.c:4:int main(int argc, char **argv)

Posted by 시티락