파일 내용을 검색하는 명령어는 grep 명령어이다.

사용법

$ grep [옵션] 패턴 파일명들
  • 지정한 파일에 특정 문자열(패턴)이 들어있는지 검색

옵션

  • -i : 대소문자를 무시하고 검색
  • -l : 해당 패턴이 들어있는 파일 이름을 출력
  • -n : 각 줄의 줄 번호도 함께 출력
  • -v : 명시된 패턴을 포함하지 않는 줄을 출력
  • -c : 패턴과 일치하는 줄 수를 출력
  • -w : 패턴이 하나의 단어로 된것만 검색

grep 명령어 : 정규식

  • 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어
  • 구성요소 : 앵커, 문자집합, 변환자
  • 앵커 : 검색시 한줄에서 패턴의 위치를 표현(^,$)
  • 문자집합 : 하나이상의 문자들을 표현(알파벳,숫자..)
  • 변환자 : 이전 문자 집합의 반복횟수 지정
특수 문자
  • ? : 한글자 혹은 없음을 의미
  • . : 임의의 한 문자를 의미
    • : 바로 앞의 것을 0번 이상 반복
  • [] : [과 ] 사이의 문자 중 하나를 의미(- 기호 : 문자의 범위를 지정)
  • [^..] : [^과 ] 사이의 문자를 제외한 나머지 문자중 하나를 의미
  • ^ : ^문자열은 문자열로 시작하는 줄을 의미
  • $ : 문자열$은 문자열로 끝나는 줄을 나타낸다.

예시

hoestory.txt

hello hoestory good
Hoestory age 24
height 185cm
hoestory haha
weight 1kg
hoestory caha
GOOD BYE
$ grep hoestory hoestory.txt

//출력 결과
hello hoestory good
hoestory haha
hoestory caha
  • hoestory.txt파일에서 hoestory가 들어간 줄 출력
$ grep -i hoestory hoestory.txt

// 출력 결과
hello hoestory good
Hoestroy age 24
hoestory haha
hoestory caha
  • -i 옵션으로 대소문자 무시하고 hoestory가 들어간 줄 출력

 

$ grep -iv good hoestory.txt

// 출력 결과물
Hoestory age 24
hoestory haha
height 185cm
weight 1kg
  • -i 옵션으로 대소문자 무시한 good을 검색하고 -v 옵션으로 good이 안들어간 줄 출력

 

$ grep -ic hoestory hoestroy.txt

// 출력 결과물
3
  • -i 옵션으로 대소문자 무시한 good을 -c 옵션으로 몇개 있는지 출력

 

$ grep '[0-9].*' hoestory.txt

// 출력 결과
Hoestory age 24
height 185cm
weight 1kg
  • [0-9] : 0~9 아무숫자
  • . : 임의의 한문자
  • * : 앞에거를 0번이상 반복
$ grep 'd$' hoestory.txt

//출력 결과
hello hoestory good
  • 문자열 끝이 d로 끝나는 줄 출력
$ grep '[^h]aha' hoestory.txt

// 출력 결과
hoestory caha
  • h를 제외함 문자aha인 줄 출력
$ grep '^G' hoestory.txt

// 출력 결과
GOOD BYE
  • 시작 문자가 'G'인 줄 출력

'Linux' 카테고리의 다른 글

[Linux]명령어 스케줄링  (0) 2021.12.12
[Linux]파일 정렬  (0) 2021.12.01
[Linux]파일 속성으로 파일 찾기  (0) 2021.11.29