반응형
How to use "grep" command
리눅스 시스템의 CLI(Command-Line Interface) 환경에서 명령의 결과는 console로 결과가 나옵니다. (옵션에 따라 로그 파일이나 출력되지 않도록도 가능합니다.) 이 console의 결과가 적을 때는 사용자가 탐색하는데 문제가 없지만 방대한 양의 결과에서 특정 문자열이나 패턴을 갖는 라인을 찾는 경우에는 쉽지 않은 경우가 많습니다. 이 때 사용 가능한 명령어가 grep 입니다.
grep의 종류
grep 종류 | 내용 | 정규표현식 사용가능 여부 |
grep | 다중 패턴 검색 | O |
egrep | 정규 표현식 패턴 검색 | O |
fgrep | 문자열 패턴 검색 | X |
사용 문법
주요 옵션 | 내용 | |
-E | --max-count=NUM | 정규 표현식 패턴으로 찾음 |
-F | --fixed-strings | 문자열 패턴으로 찾음 |
-i | --ignore-case | 대소문자를 구별하지 않음 |
-w | --word-regexp | 단어와 일치하는 행만 출력 |
-x | --line-regexp | 라인과 일치하는 행만 출력 |
-v | --invert-match | 일치하지 않는 행만 출력 |
-m | --max-count=NUM | 최대로 표시될 결과 수 제한 |
-n | --line-number | 일치하는 행의 라인 번호를 포함하여 출력 |
-r | --recursive | 하위 디렉토리를 포함한 전체 파일에서 탐색 |
-l | --files-with-match | 패턴이 포함된 파일의 이름을 출력 |
-c | --count | 일치하는 행의 수를 출력 |
사용 예시
▶︎ /var/log/syslog에서 cron이 실행된 적 있는지 체크
$> grep 'cron' /var/log/syslog
▶︎ /var/log/syslog과 /var/log/syslog.1에서 cron이 실행된 적 있는지 체크
$> grep 'cron' /var/log/syslog /var/log/syslog.1
탐색된 파일 명이 보라색처럼 앞에 표시됩니다.
▶︎ /var/log/내 모든 파일에서 cron이 실행된 적 있는지 체크
$> grep 'cron' /var/log/*
두 번째 줄처럼 폴더인 경우는 무시하고 파일에서 탐색합니다.
▶︎ /var/log/과 하위 모든 파일에서 cron이 실행된 적 있는지 체크 (recursive)
$> grep -r 'cron' /var/log/*
▶︎ /var/log 디렉토리 내 확장자가 .log로 끝나는 파일에서만 'cron' 탐색
# /var/log 내 *.log 파일 탐색
$> ls -alt /var/log/*.log
# /var/log 내 *.log 파일들에서 cron 문자열 탐색
$> grep 'cron' /var/log/*.log
▶︎ /var/log 디렉토리와 하위 모든 디렉토리 내 파일에서 a 또는 b로 시작하는 모든 라인 탐색
$> grep -r '^[ab]' /var/log/*
▶︎ /var/log 디렉토리와 하위 모든 디렉토리 내 파일에서 a로 시작해서 콜론(:)으로 끝나는 6자리 문자열 탐색
$> grep -r 'a....:' /var/log/*
점(.)의 개수 만큼 포함한 문자열 탐색
반응형
'개발 창고 > Server' 카테고리의 다른 글
[Linux] How to use "top" command (2) | 2023.10.26 |
---|---|
[Linux] How to use "id" command (0) | 2023.10.26 |
[Linux] How to configure a Home Create file (0) | 2023.10.25 |
[AWS] Light Sail에서 WordPress를 구축하는 방법 (0) | 2023.08.04 |
[Nginx] PayloadTooLargeError: request entity too large (0) | 2023.03.20 |