grep 명령어는 입력으로 전달된 파일 내용에서 특정 문자열을 찾고자 할때 쓰는 명령어이다.
이것도 리눅스에서 숨쉬듯이 사용되는 명령어 중 하나이다.
단지 문자열이 일치하는지를 넘어, 다양하고 효율적으로 문자열을 찾을 수 있다. 정규식 사용도 가능.
사용 예)
[root@localhost~]$ grep [OPTION] [PATTERN] [FILE]
//아래는 'DEER.txt' 파일의 내용에서 'DEER'라는 문자열을 검색하고 문자열이 존재하는 라인을 출력한다.
//대소문자 구분함
[root@localhost~]$ cat DEER.txt
DEER1
DEER2
LION
DEER3
[root@localhost~]$ grep 'DEER' DEER.txt
DEER1
DEER2
DEER3
[root@localhost~]$ grep 'str' [FILE] //대상 파일에서 문자열 검색
[root@localhost~]$ grep 'str' * //현재 디렉토리 모든 파일에서 문자열 검색
[root@localhost~]$ grep 'str' *.txt //'.txt' 확장자를 가진 모든 파일에서 문자열 검색
[root@localhost~]$ grep -i 'str' [FILE] //대소문자 구분하지 않고 문자열 검색
[root@localhost~]$ grep -v 'str' [FILE] //매칭되는 정규식 PATTERN이 존재하지 않는 라인 선택
[root@localhost~]$ grep -w 'str' [FILE] //단어 단위로 문자열 검색
[root@localhost~]$ grep -n 'str' [FILE] //검색된 문자열이 포함된 라인 번호 출력
[root@localhost~]$ grep -r 'str' * //하위 디렉토리를 포함한 모든 파일에서 문자열 검색
[root@localhost~]$ grep -m 100 'str' FILE //최대 검색 결과 갯수 제한
[root@localhost~]$ grep -H 'str' * //검색 결과 앞에 파일 이름 표시
[root@localhost~]$ grep 'A.*B' * //문자열 A로 시작하여 문자열 B로 끝나는 패턴 찾기
[root@localhost~]$ grep 'str[0-9]' * //str뒤에 0-9사이 숫자만 변경되는 패턴 찾기
[root@localhost~]$ grep -F '*[]?..." [FILE] //문자열 패턴 전체를 정규 표현식 메타 문자가 아닌
//일반 문자로 검색하기
[root@localhost~]$ grep '\*' [FILE] //정규 표현식 메타 문자를 일반 문자로 검색하기
[root@localhost~]$ grep '^str' [FILE] //문자열 라인 처음 시작 패턴 검색하기
[root@localhost~]$ grep '$str' [FILE] //문자열 라인 마지막 종료 패턴 검색하기
grep 명령어 옵션)
grep [OPTION...] PATTERN [FILE...]
-E : PATTERN을 확장 정규 표현식(Extended RegEx)으로 해석
-F : PATTERN을 정규 표현식(RegEx)이 아닌 일반 문자열로 해석
-G : PATTERN을 기본 정규 표현식(Basic RegEx)으로 해석
-P : PATTERN을 Per1 정규 표현식(Per1 RegEx)으로 해석
-e : 매칭을 위한 PATTERN 전달
-f : 파일에 기록된 내용을 PATTERN으로 사용
-i : 대/소문자 무시
-v : 매칭되는 PATTERN이 존재하지 않는 라인 선택
-w : 단어(word) 단위로 매칭
-x : 라인(line) 단위로 매칭
-z : 라인을 newline(\n)이 아닌 NULL(\0)로 구분
-m : 최대 검색 결과 갯수 제한
-b : 패턴이 매치된 각 라인(-o 사용 시 문자열)의 바이트 옵셋 출력
-n : 검색 결과 출력 라인 앞에 라인 번호 출력
-H : 검색 결과 출력 라인 앞에 파일 이름 표시
-h : 검색 결과 출력시, 파일 이름 무시
-o : 매칭되는 문자열만 표시
-q : 검색 결과 출력하지 않음
-a : 바이너리 파일을 텍스트 파일처럼 처리
-I : 바이너리 파일은 검사하지 않음
-d : 디렉토리 처리 방식 지정(read, recurse, skip)
-D : 장치 파일 처리 방식 지정(read, skip)
-r : 하위 디렉토리 탐색
-R : 심볼릭 링크르 따라가며 모든 하위 디렉토리 탐색
-L : PATTERN이 존재하지 않는 파일 이름만 표시
-l : 패턴이 존재하는 파일 이름만 표시
-c : 파일 당 패턴이 일치하는 라인의 갯수 출력
'Linux' 카테고리의 다른 글
리눅스 vi 단축키 모음 (0) | 2024.06.22 |
---|---|
[Linux]tar, gz, zip 압축 및 해제 (0) | 2020.11.17 |
[linux]find 명령어 (0) | 2020.11.17 |
[linux]mv 명령어 (0) | 2020.11.15 |
[linux]touch 명령어 (0) | 2020.11.15 |