[linux] grep과 정규표현식

해질녘·2022년 11월 18일
0

grep

기본적으로 grep '문자열' 파일명 으로 사용한다. 해당 정규표현식 포함된 행을 출력하며, 다양한 옵션이 있다.

  • 문자열이 들어간 파일의 디렉토리 및 파일명 출력하기
    * ls -l | grep 'at'

  • 'C'로 시작하는 행 모두 출력
    * grep '^C' 파일명

    • ^ 다음으로 시작하는~
  • 특정 문자열로 시작하는 단어를 포함한 행 모두 출력
    * grep '\<문자열' 파일명

  • 결과로 나온 라인 수 출력
    * -c 옵션

  • 주어진 문자열과 정확하게 일치하는 단어를 포함하는 행 모두 출력
    * -w 옵션

    • 혹은 grep '\<문자열\>' 파일명
  • 대소문자 구분 없애기
    * -i 옵션

egrep

확장정규표현식을 이용하여 찾는다.

grep은 단순히 1개의 표현식만 사용 가능하고 egrep은 확장정규표현식을 이용하여 한개 이상의 표현식을 사용 가능함.

  • 특정 문자를 하나 이상 포함하는 행 모두 출력
    * 예: 문자 9
    • egrep '9+' 파일명 혹은 grep '9\+' 파일명
    • grep 의 경우 escape 코드가 들어가는 점이 다르다.
  • 여러개 조합하기
    * 소문자 t 다음에,
    • 소문자 h 혹은 y 혹은 마침표(.)가 들어가는 행 모두 출력하기
    • egrep 't(h|y|\.)' 파일명
    • 이 때 마침표는 정규표현식의 특수 문자로 쓰이므로, 이스케이프 문자를 붙인다.

fgrep

정규표현식이 아니라 문자열의 단순 포함/불포함 여부를 기준으로 찾는다. grep보다 속도가 빠르다는 장점이 있다. 또한 특수문자 이스케이프 문자열 붙이기 귀찮을 때 사용할 수 있다.

  • 문자열 ^C를 포함하는 행 모두 출력
    * 이 때 C가 아니라 특수문자 포함한 ^C이다.
    • fgrep '^C' 파일명

0개의 댓글