2014년 10월 29일 수요일

Linux find 명령어

출처 : http://soharang.tistory.com/815



Linux에서 파일 내에 특정 문자열을 검색해야 하는 경우가 종종 있다.





- 현재 디렉토리 내 확장자가 txt인 파일들을 중에서 "홍길동"이라는 문자열을 갖고 있는 파일의 한 줄과 이름을 보여준다.

find . -name "*.txt" | xargs grep 홍길동



- 이 때 검색어로 사용된 문자열은 색을 달리하여 표시하고 싶다면

find . -name "*.txt" | xargs grep --color=auto 홍길동



 - 검색어의 위치(줄번호)를 같이 표기하고 싶다면



find . -name "*.txt" | xargs grep -n 홍길동



- 대소문자를 구분하고 싶지 않다면

find . -name "*.txt" | xargs grep -i LgMobile

즉, LGMobile, LGMOBILE, lgMobile을 가리지 않고 찾는다.



- 현재 디렉토리 내 확장자가 txt인 파일들을 중에서 "홍길동"이라는 문자열을 갖고 있는 파일의 이름만 보고 싶다면

find . -name "*.txt" | xargs grep -l 홍길동



- 검색 결과에 다음과 같은 메시지가 포함된다면

grep: [특정경로]: No such file or directory



2>/dev/null 을 추가하면 해당 메시지를 표시하지 않고 찾은 결과만 볼 수 있다. 즉,

find . | xargs grep 2>/dev/null 홍길동



- 모든 옵션은 함께 사용 가능하다.

find . -name "*.txt" | xargs grep --color=auto -n 2>/dev/null 홍길동

댓글 없음: