Grep 사용법 · 2 min read · Sep 18, 2025

파일에서 Grep을 사용하여 패턴 검색 수행하는 방법

우리의 첫 번째 grep 명령어에 대한 기사에서는 도구가 제공하는 몇 가지 기능을 다루었습니다. 여기에는 단어만 검색하는 방법, 두 단어 검색, 일치하는 단어가 포함된 줄 수 세기 등이 포함됩니다. 이 외에도 도구는 이해하기 쉽고 유용한 몇 가지 기능을 제공합니다. 이 기사에서는 그 중 일부를 논의할 것입니다.

이 튜토리얼에 언급된 모든 예제는 Ubuntu 14.04LTS에서 테스트되었습니다. 또한 이 튜토리얼의 모든 grep 관련 예제에 대해 다음 파일(test_file1.txt)을 사용할 것입니다:

grep 테스트 파일

Grep으로 대소문자 구분 없는 검색

기본적으로 grep은 대소문자를 구분합니다. 즉, 예를 들어 ‘ABC’와 ‘abc’를 별도로 취급합니다. 그러나 검색이 대소문자를 구분하지 않도록 하려면 -i 명령줄 옵션을 사용할 수 있습니다.

grep -i [검색할 문자열] [파일 이름]

예를 들어:

grep -i "linux" test_file1.txt

참고: 패턴(예: 위의 예에서 ‘linux’)뿐만 아니라, grep 매뉴얼 페이지에 따르면 -i 옵션은 입력 파일에 대한 대소문자 구분도 무시합니다. 다음은 발췌 내용입니다:

 -i, --ignore-case  
 대소문자 구분을 PATTERN과 입력 파일 모두에서 무시합니다. (-i는 POSIX에 의해 지정됨.)

그러나 우리는 입력 파일 관련 동작을 재현할 수 없었습니다.

Grep에서 일치하는 문자열이 포함된 줄의 특정 비일치 줄 표시하기

이 도구를 사용하면 일치하는 문자열이 포함된 줄의 앞, 뒤 또는 주위에 있는 특정 수의 줄을 표시할 수 있습니다.

일치하는 줄 뒤에 ‘N’ 줄을 인쇄하려면 -A 명령줄 옵션을 사용하십시오.

$ grep -A N [검색할 문자열] [파일 이름]

예를 들어:

$ grep -A 2 "linux" test_file1.txt

위 명령의 출력은 다음과 같습니다.

유사하게, -B 명령줄 옵션은 일치하는 줄 앞의 줄을 표시하는 데 사용됩니다.

$ grep -B N [검색할 문자열] [파일 이름]

예를 들어:

$ grep -B 2 "linux" test_file1.txt

출력은 다음과 같습니다:

grep 출력

마지막으로, 일치하는 줄 주위의 줄을 인쇄하려면 -C 명령줄 옵션을 사용하십시오.

$ grep -C N [검색할 문자열] [파일 이름]

예를 들어:

$ grep -C 2 "linux" test_file1.txt

캡처된 출력은 다음과 같습니다:

Grep에서 일치하는 문자열만 인쇄하기

표준 출력에 일치하는 문자열만 인쇄할 수도 있습니다(기본적으로 표시되는 전체 줄 대신). 이 기능은 -o 명령줄 옵션을 사용하여 접근할 수 있습니다.

$ grep -o [검색할 문자열] [파일 이름]

예를 들어, 파일에서 문자열 “linux”를 검색하되 전체 줄은 인쇄하지 않으려면 다음 명령을 사용합니다.

$ grep -o "linux" [파일 이름]

또한 및 .와 같은 와일드카드 문자를 사용하여 여러 문자열을 grep할 수 있습니다. 예를 들어, “how”로 시작하고 “linux”로 끝나는 단어 그룹을 grep하려면 다음 명령을 사용할 수 있습니다.

$ grep -o "how.*linux" [파일 이름]

Grep에서 위치 표시하기

grep 명령은 일치하는 문자열이 발생하는 줄의 바이트 오프셋을 표시할 수 있습니다. 이 기능은 -b 명령줄 옵션을 사용하여 접근할 수 있습니다. 그러나 이 옵션을 더 잘 사용하려면 -o 명령줄 옵션과 함께 사용하여 일치하는 문자열의 정확한 위치를 표시할 수 있습니다.

$ grep -o -b [검색할 문자열] [파일 이름]

예를 들어:

$ grep -o -b "for" test_file1.txt

출력은 다음과 같습니다:

결론

이 모든 옵션이 매일 필요하지는 않겠지만, 언제 유용할지 모르므로 적어도 알아두는 것이 좋습니다. Grep은 정규 표현식과 함께 사용할 때 더욱 강력해지지만, 그 주제는 다른 날로 미루겠습니다.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.