2012년 3월 23일 금요일

폴더 내 파일들의 특정 단어가 포함된 줄 나열

폴더 내 파일들에 포함된 특정 단어가 포함된 줄 나열하기

find 명령어 와 xargs 명령어, grep 명령어의 조합을 이용해 보았다.

예) 현재 폴더에 하위 폴더를 포함한 모든 파일에 #include 라는 단어가 포함된 라인을 출력한다.
$ find . | xargs grep --no-filename -s "#include"

위 명령어는 아래 명령어들이 복합되어 있다.
  • find 명령어: 현재 폴더부터 하위 폴더까지 모든 파일을 탐색한다.
  • xargs 명령어: find . 명령어로 찾은 파일명을 grep 명령어의 인자로 넣어준다.
  • grep 명령어: #include 라는 단어가 포함된 줄을 출력한다.

추가) 결과물의 정렬 및 중복된 줄 제거
$ find . | xargs grep --no-filename -s "#include" | sort | uniq -u

위 명령어는 아래 명령어들이 복합되어 있다.
  • sort: 결과물을 정렬한다.
    • -r 옵션을 주면 내림차순으로 정렬한다.
  • uniq: 중복된 내용 처리를 한다.
    • -u 옵션을 주면 중복된 항목 없이 모든 항목을 나열한다.
    • -d 옵션을 주면 중복된 항목들만 나열한다.

댓글 없음:

댓글 쓰기