grep
1
grep [OPTION...] PATTERNS [FILE...]
각 파일에서 PATTERNS을 검색해 패턴과 일치하는 각 줄을 출력한다.
일반적으로 PATTERNS은 따옴표로 묶어야 한다.
옵션
-V
, --version
- 버전 확인
패턴
-G
, --basic-regex
- 패턴을 기존 정규식으로 해석 (기본값)
-E
, --extended-regexp
- 패턴을 확장 정규식으로 해석
-F
, --fiexed-strings
- 패턴을 고정 문자열로 해석
매칭
-e [패턴]
, --regexp=[패턴]
- 지정한 패턴으로 매칭을 시도한다. 이 옵션을 여러번 사용할 수 있다.
-f [FILE]
, --file=[FILE]
- FILE 에서 한 줄당 패턴을 하나 가져온다.
-i
, --ignore-case
- 패턴의 대소문자를 무시하고 매칭한다.
--no-ignore-case
- 패턴의 대소문자를 고려해 매칭한다. (기본값)
-v
, --invert-match
- 패턴과 매칭되지 않는 항목을 가져온다.
-w
, --word-regexp
- 한 단어와 정확히 일치하는 항목을 선택한다.
-x
, --line-regexp
- 한 줄과 정확히 일치하는 항목을 선택한다.
- 정규식 패턴에서
^
,$
로 둘러싼 것과 같다.
파일
-a
, --text
- 바이너리 파일을 텍스트로 처리
--binary-files=[TYPE]
- 바이너리 파일을 어떤 타입으로 읽을지 지정 (기본값 : binary)
-r
, --recursive
- 재귀적으로 각 디렉터리 아래의 모든 명령을 읽는다.
-R
, --dereference-recursive
- 재귀적으로 각 디렉터리 아래의 모든 명령을 읽는다.
-r
옵션과 달리 모든 심볼릭 링크를 따라간다.
egrep, fgrep, rgrep (deprecated)
호환성을 위해 제공되지만 사용하지 않는다.
각각 grep -E
, grep -F
, grep -r
과 동일
응용
1
2
cat readme.md | grep main
# readme.md의 내용에서 main을 찾음
1
2
grep -r "main" ./*.c
# 확장자가 c 인 파일에서 main을 찾음