반응형

리눅스마스터 1급 / grep 명령어 - 파일의 내용에서 특정 문자열 검색

 

grep은 입력으로 전달된 파일의 내용에서 특정 문자열을 찾고자할 때 사용하는 명령어입니다. 

 

 

grep 옵션

grep [OPTION...] PATTERN [FILE...]
        -E        : PATTERN을 확장 정규 표현식(Extended RegEx)으로 해석.
        -F        : PATTERN을 정규 표현식(RegEx)이 아닌 일반 문자열로 해석.
        -G        : PATTERN을 기본 정규 표현식(Basic RegEx)으로 해석.
        -P        : PATTERN을 Perl 정규 표현식(Perl 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        : 파일 당 패턴이 일치하는 라인의 갯수 출력.

 

grep 정규 표현식

. 1개의 문자 매치 (정확히 1개의 문자와 매치)
* 앞 문자가 0회 이상 매치
{n} 앞 문자가 정확히 n회 매치
{n,m} 앞 문자가 n회 이상 m회 이하 매치
[ ] 대괄호에 포함된 문자 중 한개와 매치
[^ ] 대괄호 안에서 ^뒤에 있는 문자들을 제외
[ - ] 대괄호 안 문자 범위에 있는 문자들 매치
() 표현식을 그룹화
^ 문자열 라인의 처음
$ 문자열 라인의 마지막
? 앞 문자가 0 또는 1회 매치 (확장 정규 표현식)
+ 앞 문자가 1회 이상 매치 (확장 정규 표현식)
| 표현식 논리 OR (확장 정규 표현식)

 

관련 문제

2020년 1차 다음 중 lin.txt 파일에서 a로 시작되는 줄만 검색하려고 할 때의 명령으로 알맞은 것은? 2
1. grep a lin.txt

2. grep ^a lin.txt
3. grep [a] lin.txt

4. grep [^a] lin.txt

2019년 1차 다음 명령의 결과에 대한 설명으로 알맞은 것은? 1
# grep -v linux lin.txt
1. lin.txt에서 linux라는 문자열이 없는 줄을 출력한다.
2. lin.txt에서 linux라는 문자열이 있는 줄의 개수만 출력한다.
3. lin.txt에서 linux라는 문자열이 중복되어 있는 줄을 제거하고 출력한다.
4. lin.txt에서 linux라는 문자열의 대소문자를 무시하고 문자열이 있으면 무조건 출력한다.

반응형

+ Recent posts