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번 반복
'프로그래밍 > 리눅스' 카테고리의 다른 글
[리눅스] N일자 전 로그파일 삭제하기 (0) | 2023.03.04 |
---|---|
[리눅스] vi 잠시 나갔다 오기 ( suspend 상태 설정 및 해제 ) (0) | 2023.03.04 |
[리눅스] vi 에서 주석 글씨 잘보이게 (0) | 2023.03.04 |
[리눅스] 쉘과 명령어 기초 (1) | 2023.03.04 |
[리눅스] 검색 find 사용법 (0) | 2023.03.02 |
댓글