IT/리눅스

[Linux] grep 명령어 사용법, 리눅스 문자열 검색

몬스터r 2022. 12. 18. 20:05

[Linux] grep 명령어 사용법, 리눅스 문자열 검색


오늘은 리눅스 사용자라면 몰라서는 안 될 grep 사용 방법에 대해 알아보자.

먼저, grep이라는 명령어는 파일 내에서 원하는 문자열을 포함한 줄을 출력해준다.

아무 옵션 없이 사용하면 다음과 같다.

[haechan@haechan ~]$ cat study_file.txt
hello my name is Monsterr
nice to meet you.
We will study 'grep' command
Follow me.
Thank you.

[haechan@haechan ~]$ cat study_file.txt | grep grep
We will study 'grep' command

[haechan@haechan ~]$ grep "grep" study_file.txt
We will study 'grep' command


위의 코드 블럭을 보면 파일을 읽고 파이프( | )를 사용하여 study_file.txt를 cat한 표준 출력을 입력값으로 받아 grep을 사용하거나 처음부터 grep 명령어를 사용하여 원하는 문자열이 있는 라인을 출력한다.

다음은 grep의 대표적인 option을 확인 해보겠다.

grep 명령어 옵션

-V grep 명령어의 버전 확인
-i 대소문자를 구분하지 않고 입력한 문자열을 포함한 줄 검색
-e 여러 문자열 지정
-w 입력한 문자열과 정확히 일치하는 문자열을 포함한 줄 검색
-v invert match, 일치하는 문자열을 포함하는 줄을 제외하여 검색
-o 일치하는 문자열만 따로 검색
-q 결과를 출력하지 않음
-n 줄 번호를 포함하여 출력
-r 하위 디렉토리를 포함한 모든 파일에서 검색
-l 입력한 키워드를 포함한 파일을 검
-A[숫자] 검색할 문자열 줄과 입력한 숫자만큼 아랫줄까지 검색
-B[숫자] 검색할 문자열 줄과 입력한 숫자만큼 윗줄까지 검색
-C[숫자] 검색할 문자열 줄과 입력한 숫자만큼 위아래줄까지 검색

옵션은 위에 기재된 옵션 중 대부분이 사용된다.

사용 방법은 다음과 같다.

사용방법

  • -i, -e 옵션 사용, study와 hello가 포함된 문자열을 대소문자 구분 없이 검색
[haechan@haechan ~]$ grep -i -e study -e hello study_file.txt
hello my name is Monsterr
We will study 'grep' command

  • -q 옵션을 사용하여 해당 파일에 입력한 문자열이 포함되는지만 확인, echo $?로 이전 명령의 에러 코드를 반환하여 grep 결과의 성공 유무를 확인할 수 있다.
[haechan@haechan ~]$ grep -q will study_file.txt ; echo $?
0

  • -o 옵션을 사용하여 키워드만 뽑아낼 수 있다.
cat test.txt

linux1 linux2 linux3
hello linux5
nice linux6

cat test.txt | grep -o "linux[0-9]\+"
linux1
linux2
linux3
linux4
linux5
linux6

  • -A, -B, -C 옵션을 사용하여 위아래 줄까지 확인할 수 있다.
[haechan@haechan ~]$ cat study_file.txt
hello my name is Monsterr
nice to meet you.
We will study 'grep' command
Follow me.
Thank you.

[haechan@haechan ~]$ grep -A1 study study_file.txt
We will study 'grep' command
Follow me.

[haechan@haechan ~]$ grep -B1 study study_file.txt
nice to meet you.
We will study 'grep' command

[haechan@haechan ~]$ grep -C1 study study_file.txt
nice to meet you.
We will study 'grep' command
Follow me.


물론 찾을 문자열에서 정규표현식도 사용할 수 있기 때문에 grep은 더욱 많은 곳에서 활용될 수 있다.
언제가 될지는 모르겠지만 다음엔 정규표현식도 포스팅하도록 하겠다.