[linux] grep 사용법
ㅁ 들어가며
정말 많이 쓰는 기능이다. 로그를 분석하거나 설정값을 간단히 확인하기 위해서 사용한다.
예를 들어, 사용자의 접속 시간대나 접속한 URL 정보를 확인 할 때에 Access.log을 grep으로 찾을 때에 유용하다.
grep을 잘 이용하면 시스템 로그 분석이 아주 쉬워진다.
grep 기능에 대해서 정리해 보자!
주요기능은 파일 내용이나 콘솔상의 출력 내용에서 특정 문자열을 필터하여 보여준다.
ㅁ 파일에서 xception 필터
> grep xception auth.log
특정 에러가 있을 때에 Exception의 문자열에서 xception으로 검색한다. Exception, exception이 필터된다.
ㅁ 대소문자 구분없이 검색
> grep -i exception auth.log
ㅁ 필터된 문자열 다음 3줄 포함 출력
> grep filterText test.txt -A 3
ㅁ 필터된 문자열 이전 3줄
> grep filterText test.txt -B 3
ㅁ 필터된 문자열의 줄번호를 찾기
보다 자세한 로그 분석을 위해 파일의 해당 부분을 찾아갈 때에 유용하다.
> grep filterText test.txt -n
5번째 줄이다.
vi를 켜고 커멘드에 5를 넣으면 바로 그 라인으로 이동한다.
ㅁ 제외하고 싶은 문자열
> grep filter test.txt | grep -v etcword
ㅁ And 조건 검색
> grep filter test.txt | grep want
ㅁ Or 조건 검색
> grep 'filter\|want' test.txt
or 연산자 = | 는 특수기호이므로 역슬래시를 붙여준다.
ㅁ 하위 폴더 검색
>grep -r filter ./
ㅁ 폴더에서 문자패턴이 일체하는 모든 파일목록
> grep -lr filter *
ㅁ일치한 문자패턴 건수확인
> grep -cr filter *
ㅁ 옵션을 종합적으로 사용가능
>grep -rn filter ./ -B 5 -A 3
현재 폴더의 하위 폴더까지 검색하여 이전 5줄, 이후 3줄 출력한다.
ㅁ 파이프 라인과 연동
프로세스 확인할 때에 주로 사용한다.
>ps -ef | grep java
ㅁ 검색된 건수 확인
> grep -cr filter *
그 밖에 알지 못한 좋은 정보는 여기에다 추가해야겠다.