grep는 하나 이상의 입력 파일에서 정규식과 일치하는 줄을 검색하고 각 일치 줄을 표준 출력에 기록할 수 있는 강력한 명령줄 도구입니다.
이 문서에서는 GNU grep를 사용하여 여러 문자열 또는 패턴을 검색하는 방법을 살펴보겠습니다.
Grep 다중 패턴
GNU grep는 Basic, Extended 및 Perl 호환의 세 가지 정규식 구문을 지원합니다. 정규식 유형이 지정되지 않은 경우 grep는 검색 패턴을 기본 정규식으로 해석합니다.
여러 패턴을 검색하려면 OR(대체) 연산자를 사용하십시오.
대체 연산자 | (파이프)를 사용하면 리터럴 문자열 또는 식 집합일 수 있는 가능한 다른 일치 항목을 지정할 수 있습니다. 이 연산자는 모든 정규식 연산자 중 우선 순위가 가장 낮습니다.
grep 기본 정규식을 사용하여 여러 패턴을 검색하는 구문은 다음과 같습니다.
grep 'pattern1\|pattern2' file...
셸에 의한 메타 문자의 해석 및 확장을 방지하려면 정규식을 항상 작은 따옴표로 묶으십시오.
기본 정규식을 사용할 때 메타 문자는 리터럴 문자로 해석됩니다. 메타 캐릭터의 특별한 의미를 유지하려면 백슬래시(\)로 이스케이프해야 합니다. 이것이 우리가 슬래시로 OR 연산자(|)를 탈출하는 이유입니다.
패턴을 확장 정규식으로 해석하려면 grep -E(또는 --extended-regexp) 옵션을 호출하십시오. 확장 정규식을 사용할 때 | 연산자를 이스케이프하지 마십시오.
grep -E 'pattern1|pattern2' file...
정규식을 구성하는 방법에 대한 자세한 내용은 Grep regex 문서를 참조하십시오.
Grep 다중 문자열
문자 그대로의 문자열이 가장 기본적인 패턴입니다.
다음 예에서는 Nginx 로그 오류 파일에서 치명적, 오류 및 치명적이라는 단어가 모두 검색됩니다.
grep 'fatal\|error\|critical' /var/log/nginx/error.log
검색할 문자열에 공백이 포함된 경우 큰따옴표로 묶으십시오.
다음은 연산자를 이스케이프할 필요가 없는 확장 정규식을 사용한 동일한 예입니다. |
grep -E 'fatal|error|critical' /var/log/nginx/error.log
기본적으로 grep는 대소문자를 구분합니다. 즉, 대소문자가 구별됩니다.
검색할 때 대소문자를 무시하려면 -i 옵션(또는 --ignore-case)을 사용하여 grep를 호출하십시오.
grep -i 'fatal\|error\|critical' /var/log/nginx/error.log
문자열을 검색할 때 grep는 문자열이 더 큰 문자열에 포함된 모든 줄을 표시합니다. 따라서 "error"를 검색할 경우 "errorless" 또는 "antiterrorists"와 같이 "error"가 포함된 행도 grep에서 인쇄합니다.
지정한 문자열이 단어 이외의 문자로 닫힌 전체 단어인 행만 반환하려면 -w(또는 --word-regexp) 옵션을 사용합니다.
grep -w 'fatal\|error\|critical' /var/log/nginx/error.log
워드 문자에는 영숫자(a-z, A-Z, 0-9)와 밑줄(_)이 포함됩니다. 다른 모든 문자는 단어가 아닌 문자로 간주됩니다.
Grep 옵션에 대한 자세한 내용은 문서 Grep 명령을 참조하십시오.
다양한 패턴, 문자열 및 단어를 검색하는 grep 방법을 보여드렸습니다.
'SW > 리눅스' 카테고리의 다른 글
Linux : CentOS 8 : WireGuard VPN 설정 방법, 예제, 명령어 (0) | 2022.09.17 |
---|---|
Linux : Ubuntu 20.04 : Zoom 설치 방법, 예제, 명령어 (0) | 2022.09.16 |
Linux : Ubuntu 20.04 : Swap Space(스왑 공간) 추가 방법, 예제, 명령어 (0) | 2022.09.14 |
Linux : Ubuntu 20.04 : Node.js와 npm 설치 방법, 예제, 명령어 (0) | 2022.09.13 |
Linux : .bashrc 와 .bash_profile 개념, 차이, 설명 (0) | 2022.09.12 |