반응형
목차
grep의 종류
- grep은 3가지 종류가 있습니다.
- egrp은 정규표현식만으로 검색하는 것이고,
- fgrep은 문자열로 검색하는 grep을 말하며 각각 grep의 -E, -F 옵션을 사용했을 때와 결과는 같습니다.
명령어
|
설명
|
정규표현식 사용
|
grep
|
다중 패턴을 검색합니다.
|
O
|
egrep
|
정규 표현식 패턴으로 검색합니다.
|
O
|
fgrep
|
문자열 패턴으로 검색합니다.
|
X
|
grep 옵션
- -c : 일치하는 행의 수를 출력합니다.
- -i : 대소문자를 구별하지 않습니다.
- -v : 일치하지 않는 행만 출력합니다.
- -n : 포함된 행의 번호를 함께 출력합니다.
- -l : 패턴이 포함된 파일의 이름을 출력합니다.
- -w : 단어와 일치하는 행만 출력합니다.
- -x : 라인과 일치하는 행만 출력합니다.
- -r : 하위 디렉토리를 포함한 모든 파일에서 검색합니다.
- -m 숫자 : 최대로 표시될 수 있는 결과를 제한합니다.
- -E : 찾을 패턴을 정규 표현식으로 찾습니다.
- -F : 찾을 패턴을 문자열로 찾습니다.
문자열로 찾기
# 특정 파일에서 'error' 문자열 찾기
grep 'error' 파일명
# 여러개의 파일에서 'error' 문자열 찾기
grep 'error' 파일명1 파일명2
# 현재 디렉토리내에 있는 모든 파일에서 'error' 문자열 찾기
grep 'error' *
# 특정 확장자를 가진 모든 파일에서 'error' 문자열 찾기
grep 'error' *.log
정규표현식으로 찾기
# 특정 파일에서 문자열이 포함된 행을 찾는다.
grep '^[ab]' 파일명
# 특정 파일에서 a로 시작하는 모든 단어를 찾는다.
grep 'a*' 파일명
# 특정 파일에서 a로 시작하고 z로 끝나는 5자리 단어를 찾는다.
grep 'a...z' 파일명
# 특정 파일에서 a,b,c로 시작하는 단어를 모두 찾는다.
grep [a-c] 파일명
# 특정 파일에서 apple 또는 Apple로 시작하는 단어를 모두 찾는다.
grep [aA]pple 파일명
# 특정 파일에서 a나 b로 시작되는 모든 행을 찾는다.
grep '^[ab]' 파일명
# 특정 파일에서 apple로 시작되고 0나 9의 숫자로 끝나로 시작되는 모든 행을 찾는다.
grep 'apple'[0-9] 파일명
Example
grep은 다른 명령어와 조합해서 사용하는 경우도 많습니다.
실시간 로그 보기 (tail + grep)
tail -f mylog.log | grep 111.111.11.11
mylog파일을 실시간으로 액세스하고 IP주소가 111.111.11.11인 행만 추출할 수 있습니다.
특정 파일에서 여러개 문자열 찾기
cat mylog.txt | grep 'Apple' | grep 'Banana'
'|' 를 사용하면 grep명령어를 여러 개 사용하여 특정 파일에서 여러 개의 문자열을 찾을 수 있습니다.
위의 명령어대로 입력한다면 mylog.txt 파일에서 Apple과 Banana이 있는 문자열들을 찾을 수 있습니다.
grep 한 결과 값 txt 파일로 저장하기
grep -n 'Apple' mylog.txt > result.txt
mylog.txt 파일에서 Apple이 있는 문자열들을 result.txt 파일에 저장할 수 있습니다.
grep "특정 확장자, 디렉토리" 에서 실행과 제외
grep [특정 확장자의 파일만 검색]
grep -ri --include='*.txt' "Hello" /misc/project
위 명령어는 '/misc/project' 디렉토리부터 하위 디렉토리 전부를 Hello 키워드가 있는 모든 txt파일을 검색 합니다.
grep [특정 확장자를 제외하고 검색]
grep -ri --exclude='*.xml' "Hello" /misc/project
위 명령어는 '/misc/project' 디렉토리부터 하위 디렉토리 전부를 Hello 키워드가 있는 모든 xml파일을 제외하고 검색합니다.
grep [특정 디렉토리를 제외하고 검색]
grep -ri --exclude-dir='Video' "Hello" ./
위 명령어는 현재 디렉토리부터 하위 디렉토리 전부를 Video로 된 디렉토리를 제외하여 Hello 키워드가 들어간 파일을 검색합니다.
grep -ri "Hello" ./ --exclude-dir={Video,Doc}
제외 디렉토리를 복수 지정 하는 방법 (Video 디렉토리와 Doc 디렉토리 제외)
grep [검색한 내용 저장할 파일 지정]
grep -ri --exclude-dir='Video' "Hello" ./ > G1.log
grep 명령어의 가장 뒤에 ' > 파일명'
화면 출력을 하지 않고 grep 한 내용을 'G1.log'에 저장(파일생성)
grep이후 다수 파일에서 문자열 치환
grep -rl "특정문자" *|xargs sed -i 's/특정문자/바꿀문자/g'
Example:
grep -rl "app" /bin/user.pl |xargs sed -i 's/app/abb/g'
/bin/user.pl에서 app >> abb 로 치환
728x90
반응형
'Environment > Linux' 카테고리의 다른 글
[Vim] 커서에 위치한 문장 및 문자 찾기 및 Highlight (0) | 2025.01.11 |
---|---|
[Vim] 원하는 line number로 이동하기 (0) | 2024.02.08 |
[Linux] 해상도 변경 (0) | 2023.07.24 |
[Linux] 소프트 링크(Soft Link) (0) | 2023.07.08 |
[Vim] Tab 분할하기, Tab 크기 조절하기 (0) | 2023.07.08 |