DevTzu
[Linux] 리눅스 grep 명령어 사용법 | 파일 내 특정 문자열 찾기 본문
- grep 명령어
리눅스에서 'grep' 명령어는 파일 내용에서 특정 문자열을 검색하는 유용한 명령어입니다.
'grep' 명령어는 정규 표현식을 사용하여 검색 패턴을 정의하고, 해당 패턴이 포함된 모든 행을 출력합니다.
리눅스 grep 사용법
- 문자열로 찾기
grep [options] pattern [file ...]
# example.txt 파일에서 "hello" 문자열을 검색
grep "hello" example.txt
# 현재 디렉토리에서 모든 .txt 파일에서 "world" 문자열을 검색
grep "world" *.txt
# 특정 파일에서 "debug" 문자열 찾기
grep "debug" 파일명
# 여러개의 파일에서 "error" 문자열 찾기
grep "error" 파일명1 파일명2
# 현재 디렉토리내에 있는 모든 파일에서 "date" 문자열 찾기
grep "date" *
# 특정 확장자를 가진 모든 파일에서 "test" 문자열 찾기
grep "test" *.java
grep 명령어를 사용하시면 특정 파일에서 내가 원하는 문자열이 있는 라인을 찾을 수 있습니다.
파일은 여러 개 지정도 가능합니다.
- 정규표현식으로 찾기
# 특정 파일에서 문자열이 포함된 행을 찾는다.
grep '^[2023]' 파일명
# 특정 파일에서 prod로 시작하는 모든 단어를 찾는다.
grep 'prod*' 파일명
# 특정 파일에서 a로 시작하고 z로 끝나는 5자리 단어를 찾는다.
grep 'a...z' 파일명
# 특정 파일에서 a,b,c로 시작하는 단어를 모두 찾는다.
grep [a-c] 파일명
# 특정 파일에서 Google 또는 google로 시작하는 단어를 모두 찾는다.
grep [gG]oogle 파일명
# 특정 파일에서 a나 b로 시작되는 모든 행을 찾는다.
grep '^[ab]' 파일명
# 특정 파일에서 aws로 시작되고 0나 9의 숫자로 끝나로 시작되는 모든 행을 찾는다.
grep 'aws'[0-9] 파일명
리눅스에서 grep은 정규표현식으로 특정 문자열을 찾을 수 있는 기능도 제공합니다.
정규표현식은 다양한 곳에서 활용이 가능하기 때문에 한번 알아두면 유용하게 사용이 가능합니다.
자주 사용하는 옵션
- -c : 일치하는 행의 수를 출력
- -i : 대소문자를 구별하지 않는다
- -v : 일치하지 않는 행만 출력
- -n : 포함된 행의 번호를 함께 출력
- -l : 패턴이 포함된 파일의 이름을 출력
- -w : 단어와 일치하는 행만 출력
- -x : 라인과 일치하는 행만 출력
- -r : 하위 디렉토리를 포함한 모든 파일에서 검색
- -m 숫자 : 최대로 표시될 수 있는 결과를 제한
- -E : 찾을 패턴을 정규 표현식으로 찾는다
- -F : 찾을 패턴을 문자열로 찾는다
실시간 로그 보기 (tail + grep)
tail -f catalina.out | grep 192.168.0.12
grep은 다른 명령어와 조합해서 사용할 수 있습니다.
대부분 개발자들이 실시간 로그 체크를 할 때는 tail과 grep 명령어 조합으로 로그파일에서 자신이 원하는 키워드만 확인합니다.
위의 명령어는 catalina.out 로그 파일에서 실시간으로 액세스 하고 IP주소가 192.168.0.12인 행만 출력합니다.
특정 파일에서 여러 개 문자열 찾기
cat index.html | grep 'Amazon' | grep 'Google'
| 파이프를 사용하면 grep명령어를 여러 개 사용하여 특정 파일에서 여러 개의 문자열을 찾을 수 있을 수도 있습니다.
위의 명령어는 index.html 파일에서 Amazon과 Google이 있는 문자열들을 찾을 수 있겠습니다.
최대 검색 결과 제한하기
grep -m 100 'login' RestController.java
grep 한 결과가 너무 많으면 한도 끝도 없이 스크롤이 내려가는 경우가 생기기 때문에 grep 한 결과를 100개까지만 출력하고 싶다면 -m 옵션을 사용합니다.
위와 같이 사용한다면 RestController.java 파일에서 login 문자열을 100개까지만 검색합니다.
grep 한 결과 값 txt 파일로 저장하기
grep -n 'login' server.log > search.txt
grep 결과가 길면 터미널에서 확인이 어렵기 때문에 txt파일로 저장하여 확인할 수 있습니다.
위의 명령어는 server.log 파일에서 login 문자열들을 search.txt 파일에 저장합니다.
[Linux] 리눅스 find 명령어 사용법 | 파일찾기, 파일검색
https://devtzu.tistory.com/323
[Linux] 리눅스 find 명령어 사용법 | 파일찾기, 파일검색
- find 명령어 리눅스에서 find 명령어는 지정된 디렉토리 하위의 파일 및 디렉토리를 검색하는 유용한 명령어입니다. find 명령어는 특정 파일 이름, 크기, 소유자, 그룹, 수정 일자 등의 속성을 기
devtzu.tistory.com
[Linux] 리눅스 chmod 명령어 사용법 | 파일 권한 변경
https://devtzu.tistory.com/327
[Linux] 리눅스 chmod 명령어 사용법 | 파일 권한 변경
- chmod 명령어 리눅스에서 "chmod"는 파일 및 디렉토리의 권한을 변경하는 명령어입니다. "chmod"는 "change mode"의 줄임말입니다. 리눅스 파일 시스템은 파일과 디렉토리에 대한 세 가지 유형의 권한을
devtzu.tistory.com
#Linux #리눅스 #grep #명령어 #사용법 #파일내특정문자열찾기 #정규식 #문자열로찾기 #실시간로그 #파일로저장
'study' 카테고리의 다른 글
[Linux] 리눅스 chmod 명령어 사용법 | 파일 권한 변경 (0) | 2023.05.04 |
---|---|
[DATABASE] OLTP와 OLAP의 차이점, 비즈니스 요구사항에 따른 데이터 처리 방법 (0) | 2023.05.02 |
[Linux] 리눅스 find 명령어 사용법 | 파일찾기, 파일검색 (1) | 2023.04.30 |
[Architecture] 효율적인 로그 모니터링 방법 | 로그 레벨로 구분 Log Level | Java Spring Boot (0) | 2023.04.26 |
[Notion] 노션 데이터베이스 수식(formula) 속성 활용 (1) | 2023.04.25 |