Linuxpia/Linux 명령어

[리눅스 명령어] 특정 문자(열) 검색하기, grep

Linuxpia4U 2023. 9. 16. 23:24
반응형

특정 문자(열) 검색하기, grep

`grep`은 텍스트 검색을 위한 강력한 명령어로, UNIX와 Linux 시스템에서 광범위하게 사용됩니다. 이 명령어는 파일 내에서 주어진 패턴이나 문자열을 검색하고 일치하는 줄을 출력합니다. `grep`은 "Global Regular Expression Print"의 약자로, 정규 표현식을 사용하여 텍스트를 검색할 수 있습니다.

기본 사용법

 

grep [OPTIONS] PATTERN [FILE...]



주요 옵션


- `-i`: 대소문자를 구분하지 않고 검색합니다.
- `-v`: 일치하지 않는 줄을 출력합니다 (부정 검색).
- `-r` 또는 `-R`: 디렉터리를 재귀적으로 검색합니다.
- `-l`: 일치하는 줄을 포함하는 파일 이름만 출력합니다.
- `-n`: 일치하는 줄 앞에 줄 번호를 출력합니다.
- `-E`: 확장 정규 표현식을 사용합니다.
- `-o`: 일치하는 부분만 출력합니다.

사용 예


1. 파일에서 문자열 검색

grep "gnu" filename.txt



2. 여러 파일에서 문자열 검색

grep "gnu" file1.txt file2.txt



3. 대소문자 구분 없이 검색

grep -i "gnu" filename.txt



4. 디렉터리 내 모든 파일에서 재귀적으로 문자열 검색

grep -r "gnu" directory/



5. 정규 표현식으로 검색

grep -E "^[0-9]{3}-[0-9]{2}-[0-9]{4}$" filename.txt

'확장 정규 표현식'을 사용해야 잡아 냅니다.

 

정규표현식 내용

패턴 ^[0-9]{3}-[0-9]{2}-[0-9]{4}$의 각 부분을 살펴보겠습니다

 1. ^: 문자열의 시작을 의미합니다.
 2. [0-9]{3}: [0-9]는 0에서 9까지의 어떤 한 자리 숫자와 일치하며, {3}은 앞의 패턴이 정확히 세 번 반복되어야 함을 의미합니다. 따라서 이 부분은 3자리 숫자와 일치합니다.
 3. -: 하이픈 문자와 일치합니다.
 4. [0-9]{2}: 두 자리 숫자와 일치합니다.
 5. -: 또 다른 하이픈 문자와 일치합니다.
 6. [0-9]{4}: 네 자리 숫자와 일치합니다.
 7. $: 문자열의 끝을 의미합니다.

 

정리


`grep`는 텍스트 데이터를 처리할 때 매우 유용하며, 로그 파일 분석, 코드 검사, 파일 내 특정 문자열이나 패턴의 출현 횟수 확인 등 다양한 작업에 사용됩니다. 이 명령어의 변형으로 `egrep` (확장 정규 표현식 지원)와 `fgrep` (고정 문자열 검색)도 있습니다.

반응형