728x90
grep 명령어 - 파일 내 특정 문자열 찾기
리눅스에서 grep 명령어는 특정 파일에서 지정한 문자열이나 정규표현식을 포함한 행을 찾아서 출력해주는 명령어이다.
특히, tailo이나 ls 등 다양한 명령어와 조합하여 응용되는 경우가 많아서 리눅스 시스템 내에서 grep 명령어를 능숙하게 다룰 수 있어야 한다.
- grep 사용법
grep [옵션][패턴][파일명]
# test.txt 파일에서 'error'문자열 찾기
$ grep 'error' /test.txt
grep 의 종류
- grep : 다중 패턴 검색 - 정규표현식 O
- egrep : 정규표현식 패턴검색 - 정규표현식 O
- fgrep : 문자열 패턴 검색 - 정규표현식 X
이러한 종류가 있지만 그냥 대부분 grep만 사용하면 됨
grep 옵션
- -c : 일치하는 행의 수 출력
- -i : 대소문자 구분 X
- -v : 일치하지 않는 행만 출력
- -n : 포함된 행의 번호를 함께 출력
- -l : 패턴이 포함된 파일의 이름 출력
- -w : 단어와 일치하는 행만 출력
- -x : 라인과 일치하는 행만 출력
- -r : 하위 디렉토리를 포함한 모든 파일에서 검색
- -m (숫자) : 숫자로 최대 표시 될 수 있는 결과 제한
- -E : 패턴을 정규표현식으로 찾기
- -F : 패턴을 문자열로 찾기
문자열로 찾기
grep을 사용해서 특정파일에서 원하는 문자열이 있는지 찾을 수 있다.
# 파일명에서 원하는 "error" 문자열을 찾는데 대소문자 구분 안함
$ grep -i "error" test.log
# 원하는 문자열을 찾는데 라인 번호도 함께 출력
$ grep -n "error" test.log
# 원하는 문자열을 찾는데 50개까지만 출력
$ grep -m 50 "error" test.log
# 해당 문자열이 포함되지 않는 라인만 출력
$ grep -v "error" test.log
# 단어 단위로 문자열 검색
$ grep -w "error test.log
# 해당 문자열이 포함되어있는 파일 이름 표시
$ grep -H "error" *
# 하위 디렉토리에 있는 파일까지 검색
$ grep -r "error" *
정규표현식으로 찾기
grep 명령어를 사용해서 입력한 정규표현식에 해당하는 문자열도 찾을 수 있다.
# 특정 파일에서 'a'로 시작하는 모든 단어 찾기
$ grep 'a*' test.log
# abc로 시작하는 단어 모두 찾기
$ grep [a-c] test.log
# abc 또는 Abc로 시작하는 단어 모두 찾기
$ grep [aA]bc test.log
# 특정 파일에서 a나 b로 시작하는 모든 라인 출력
$ grep '^[ab]' test.log
# 특정 파일에서 ab로 시작되고 0~9의 숫자로 끝나는 모든 행 찾기
$ grep 'ab'[0-9] test.log
728x90
'Server&Network&클라우드' 카테고리의 다른 글
[Linux] 리눅스 명령어 연습 사이트 - 설치없이 웹에서 리눅스 연습 (0) | 2024.03.11 |
---|---|
[Linux] 파일, 폴더 찾기 - find (0) | 2024.03.07 |
[Linux] 파일 or 폴더 용량 확인 - df, du (0) | 2024.03.04 |
[AWS-S3] S3 CLI 명령어 _ 커맨드 옵션(recursive, exclude, include, dryrun) (0) | 2024.02.23 |
[AWS-S3] S3 CLI 명령어 _복사(cp, sync) (0) | 2024.02.22 |