시스템(Linux)

grep(특정 패턴 검색 및 매칭 출력) 에 대해 알아보겠습니다.

forward error correction Circle 2023. 9. 5. 08:30
반응형

리눅스 / 유닉스 시스템을 운영하다보면 grep 이란 명령어에 대해 꼭 알아야하는데, grep 이란 어떤 것인지 알아보고 ㅂ어떻게 활용 할 수 있는지에 대해 알아보겠습니다.

 

Ⅰ. Grep 명령어란 ?

grep 명령어는 유닉스와 리눅스 시스템에서 파일 내 특정 패턴을 검색하고 매칭되는 줄을 출력하는 유용한 명령어입니다. 

 

Ⅱ. Grep 명령어 사용 방법

grep [옵션명] [패턴] [파일명 or 디렉터리명]

Ⅲ. 자주 사용되는 명령어 예시

자주 사용되는 grep 검색 형식 명령어 설명
파일에서 특정 문자열 검색 grep "찾을문자열" 파일이름
대소문자 구분 없이 검색 grep -i "찾을문자열" 파일이름
정규 표현식 사용하여 검색 grep -E "정규표현식" 파일이름
특정 디렉토리 내에서 검색 grep "찾을문자열" 디렉토리경로/*
매칭되지 않는 줄 출력 grep -v "제외할문자열" 파일이름
매칭된 횟수 출력 grep -c "찾을문자열" 파일이름
라인 번호와 함께 출력 grep -n "찾을문자열" 파일이름

* 정규 표현식(Regular Expression)은 문자열 패턴을 기술하기 위한 형식입니다.

주로 문자열 검색, 추출, 대체 등 다양한 문자열 처리 작업에 사용됩니다. 아래는 몇 가지 정규 표현식의 예시입니다:

정규 표현식 사용 방법 설명
기본 문자열 검색 abc: "abc"라는 문자열을 검색
메타 문자 .: 임의의 한 문자와 대응됩니다.
*: 앞의 문자가 0번 이상 나올 수 있습니다.
+: 앞의 문자가 1번 이상 나올 수 있습니다.
?: 앞의 문자가 0번 또는 1번 나올 수 있습니다.
문자 클래스 [abc]: "a", "b", "c" 중 하나와 대응됩니다.
[0-9]: 0부터 9까지의 숫자 중 하나와 대응됩니다.
반복 {n}: 앞의 문자가 n번 반복됩니다.
{n,}: 앞의 문자가 최소 n번 이상 반복됩니다.
{n,m}: 앞의 문자가 최소 n번, 최대 m번 반복됩니다.
시작과 끝 ^: 문자열의 시작과 대응됩니다.
$: 문자열의 끝과 대응됩니다.
특수 문자 이스케이프: \: 다음 문자를 특수 문자로 해석하지 않고 문자 자체로 사용합니다. 예를 들어 \\는 역슬래시 자체를 의미합니다.

Ⅳ. grep 명령어 활용 

grep 명령어는 주로 문자열을 검색하는데 사용되지만, 정렬을 위해 직접적으로는 사용되지 않습니다. 

grep과 sort 명령어를 함께 사용하여 특정 조건에 맞는 줄을 찾은 후에 그 결과를 정렬할 수 있습니다.

로그 파일에서 특정 패턴을 찾아 그 결과를 시간순으로 정렬하려면 다음과 같이 할 수 있습니다:

grep "특정패턴" 로그파일명 | sort

이 명령은 grep로 특정 패턴을 찾은 뒤, 그 결과를 sort로 정렬합니다. 만약 로그 파일에서 특정 시간 정보가 있어 시간순으로 정렬하고자 한다면, 해당 시간 정보가 어떤 형식으로 표시되는지에 따라 적절한 정렬 옵션을 추가할 수 있습니다.

정렬 종류 설명
오름차순 정렬 sort 파일이름
내림차순 정렬 sort -r 파일이름
문자열 길이로 정렬 sort -n 파일이름
고유한 값으로 정렬 sort -u 파일이름
필드별 정렬 sort -k필드번호 파일이름
임시 파일 사용하지 않고 인메모리 정렬 sort -T 디렉토리경로 파일이름
대소문자 무시하고 정렬 sort -f 파일이름
특정 구분자로 구분된 필드로 정렬 sort -t구분자 -k필드번호 파일이름




반응형