최근 수정 시각 : 2025-02-16 09:21:31

grep

이 문서는 토막글입니다.

토막글 규정을 유의하시기 바랍니다.


GNU Project
{{{#!wiki style="margin: 0 -10px -5px; min-height: calc(1.5em + 5px);"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin: -6px -1px -10px;"
<colbgcolor=#a32d2a><colcolor=#fff> 관련 문서 GNU · 자유 소프트웨어 재단 · 리처드 스톨먼
소프트웨어 Bash · GNOME · GNU Emacs · GNU IceCat · GNU/Linux · GNU Octave · GNU Screen · groff · GRUB · Midnight Commander · nano · R · Texinfo
<bgcolor=#a32d2a><color#fff> 유틸리티 coreutils(fileutils · textutils · shellutils) · GNU Grep · GnuPG · GNU Tar
<bgcolor=#a32d2a><color#fff> 개발자 도구 Autotools(autoconf · automake) · binutils(BFD · as · ld · gold · gdb) · GCC · glibc · GNU Make
라이선스 GNU 일반 공중 사용 허가서 · GNU 약소 일반 공중 사용 허가서 · GNU Affero 일반 공중 사용 허가서
기타 GNU Unifont
취소선: 독립한 프로젝트
}}}}}}}}} ||
1. 개요2. 어원3. 용도4. 파생 명령어5. 관련 문서

1. 개요

정규표현식을 사용해 주어진 패턴을 검색하는 유닉스 명령어.

2. 어원

온라인에선 역두문자어 등 많은 근거 없는 어원들을 볼 수 있으나 전부 사실이 아니다. grep 이름의 유래는 사실 UNIX의 문서 편집기 ed의 명령어 :g/re/p에서 유래했다. 해석하자면,

:g/re/p
  • :g - ex 명령어 :global의 약자. 패턴에 매치되는 모든 행에 특정한 ex명령어를 실행시킨다.
  • re - 검색에 사용할 정규표현식. 여기의 re는 regex를 뜻한다.
  • p - 수행할 ex 명령어로, :p:print의 약자. 매칭된 행을 출력한다.

현재도 ex명령어를 지원하는 vivim에서 이 명령을 사용해 볼 수 있다.[1] 실행하면 re 부분에 작성한 정규표현식에 매칭되는 모든 열을 현재 버퍼 하단에 보여준다.

3. 용도

우선 표준 입력(stdin)으로 들어오는 텍스트에서 정규표현식에 매칭되는 줄을 모두 출력한다.

가장 대표적인 예시로, 특정 이름이 담긴 프로세스를 보고 싶을 때
#!syntax sh
ps -aux | grep process_name

을 사용할 수 있다.

4. 파생 명령어

  • agrep - fuzzy 매칭을 지원하는 구현체.
  • ripgrep
  • vim의 vimgrep
  • ast-grep - TreeSitter를 기반으로 AST로 파싱된 토큰에 대해 검색을 수행하는 cli.

5. 관련 문서



[1] 실제로는 :vimgrep을 사용하는 것이 낫다.