본문 바로가기
프로그래밍/리눅스

[리눅스] grep

by 소나기_레드 2023. 3. 4.
반응형

1. 복수 문자열 검색

여러 단어를 동시에 검색할 때에는, 파이프(|) 기호를 단어 사이에 넣으면 됩니다.

grep "사과\|복숭아" *

전체 파일에서 사과 와 복숭아 문자열을 찾는다.

-P 또는 -E 옵션 사용시 역슬래시 문자는 안써도 된다.

grep -P "사과|복숭아" *

-n : 찾은 행 번호 표시

grep "사과\|복숭아" *

사용 옵션

-E : or 검색

grep -E "사과|복숭아" *

사과와 복숭아가 있는 모든 파일 검색

-r : 하위 디렉토리 포함 검색

grep -r "사과|복숭아" *

현재 폴더 포함 하위폴더 모든 파일에서 검색

 

-w : 정확한 단어 검색

grep -w "Test" *

Test 라는 문자열만 검색

-i : 대소문자 구분 없음

grep -i "test" *

Test, tesT, TEST 모두 검색됨

-c : 검색 결과 수 표시

-v : 제외 검색

2. 정규식 사용

Posix Character Class

[:alnum:] Alphanumeric characters ex) [a-zA-Z0–9]

[:alpha:] Alphabetic characters ex) [a-zA-Z]

[:ascii:] ASCII characters ex) [\x00-\x7F]

[:blank:] Space and tab ex) [ \t]

[:cntrl:] Control characters ex) [\x00-\x1F\x7F]

[:digit:] Digits ex) [0–9]

[:graph:] Visible characters ex) [\x21-\x7E]

[:lower:] Lowercase letters ex) [a-z]

[:print:] Visible characters and spaces ex) [\x20-\x7E]

[:punct:] Punctuation and symbols. ex) [!”#$%&’()*+,\-./:;<=>?@[\\\]^_`{|}~]

[:space:] All whitespace characters, including line breaks ex) [ \t\r\n\v\f]

[:upper:] Uppercase letters ex) [A-Z]

[:word:] Word characters ex) [A-Za-z0–9_]

[:xdigit:] Hexadecimal digits ex) [A-Fa-f0–9]

예제 ]

IP 추출

grep -Eo ‘[[:digit:]]{1,3}[.][[:digit:]]{1,3}[.][[:digit:]]{1,3}[.][[:digit:]]{1,3}’ 파일명.log

[[:digit:]]{1,3} : [[:digit:]] 가 숫자 0부터 9까지

{1,3} 은 1자리수에서 3자리수까지

grep -Eo ‘([[:digit:]]{1,3}[.]){3}[[:digit:]]{1,3}’ 파일명.log

([[:digit:]]{1,3}[.]){3} : [[:digit:]]{1,3}[.] 을 3번 반복

반응형

댓글