https://ko.wikipedia.org/wiki/%EC%A0%95%EA%B7%9C_%ED%91%9C%ED%98%84%EC%8B%9D
이론
1004lucifer
준비물
vim dd
:$r /root/anaconda-ks.cfg
:$r /var/log/dmesg
:$r /var/log/secure
정규표현식 작동방식 확인 사이트
문제
행의 첫 문자가 [ 로 시작하고, 바로 다음 \s(공백)이 4번 반복되는( \{4\} 행 찾기
egrep '^\[\s{4}' dd | more -10
문자열이 0개 이상 ( .*) 행 찾기
egrep '.*' dd | more -10
빈 줄 찾기
egrep '^$' dd | more -10
괄호로 끝나는 행 찾기
egrep '\)$' dd | more -10
행 마지막 문자열이 disable) 로 끝나는 행 찾기
egrep 'disabled\)$' dd | more -10
단어가 dis로 시작하는 단어를 포함한 행 찾기
egrep 'dis*' dd | more -10
단어가 ed로 끝나는 단어를 포함한 행 찾기
egrep 'ed\>' dd | more -10
단어의 시작을 se로 시작하고, 바로다음 문자 s가 두번 나오는 문자를 포함 한 행 찾기
egrep '\<ses{2,}' dd | more -10
한행에 254문자 이상인 행 찾기
( '^*{480,}$' 는 작동하지 않는다! 왜냐하면 앞에 선행되는 글자가 없는 상태라 그렇다. 와일드카드랑 헷갈리지 말 것)
--password 문자열이 있는 행 찾기
egrep '\-\-password' dd | more -10
$가 들어 있는 행 찾기
egrep '\$' dd | more -10
12월달 로그 만 찾기
12월달 로그만 찾아서 새 문서에 저장하기
egrep '^Dec' dd | tee Dec.log
9월, 10월, 11월로 시작하지 않는 로그 찾기
egrep 'sshd[^(Sep|Oct|Nov)]' dd | more -10
11월 또는 12월로 시작하지 않는 로그 찾기
아래와 같이 하면 N, o, v, |, D ... 등의 글자를 하나 하나 인식해서 제외해 버린다.
egrep '^[^(Nov|Dec)]'
왜냐하면 [^ ] 는 문자 클래스 안의 문자를 제외한 나머지를 선택하기 때문이다.
예를 들면 [^abc]d는 ad, bd, cd는 포함하지 않고 ed, fd 등을 포함하는 기능이다.
리눅스에선 다른 방법이 없으므로 -v 옵션을 써서 해결하자.
대소문자 구별하지 않고,11월 또는 12월로 시작하지 않는 로그 찾기
15시 49분에 발생된 로그 찾기
15시에 발생한 로그를 최신 시간부터 출력
egrep '\s15' dd |more -10 | sort -r
단어가 disabled 또는 Disabled에 일치하는 행 찾기
egrep '(d|D)isabled' dd | more -10
점(.)숫자가 포함된 행 찾기
참고로 뒤에 *을 붙이면 결과가 더 잡다하게 나온다. (실패)
아래와 같은 영문 모를 것도 걸린다.
egrep '\.[0-9]' dd | more -10
행이 ssh2로 끝나는 행 찾기
egrep 's{2}h2$' dd | more -10
현재 작업 디렉터리안에 있는 파일중에서 내용에 ssh2가 들어 있는 파일명을 출력하기
egrep 'ssh2' ~/* | more -10
행의 마지막에 숫자가 1개 이상으로 끝나는 행 찾기
egrep '[0-9]$' dd | more -10
행의 시작을 특수문자로 시작하는 행 찾기
소문자 대문자 숫자가 아니면 특수문자인 것을 이용.
egrep '^[^a-z|A-Z|0-9]' dd |wc
공백으로 시작하는 행 찾기
egrep '^\s' dd
egrep '^[^[:blank:]]' dd
소문자로 시작하는 행 찾기
egrep '^[a-z]' dd | more -10
대문자로 시작하는 행 찾기
egrep '^[A-Z]' dd | more -10
sshd[숫자] 행 찾기
egrep 'sshd\[[0-9]' dd | more -10
egrep 'sshd\[[0-9]+\]' dd | more -10
이렇게는 검색이 잘 되지만
egrep 'sshd\[[0-2000]\]' dd | more -10 이렇게는 검색이 안된다.
왜냐하면 한자리씩 검사하는데 0-2000은 한자리가 아니기 때문.
IP주소가 192.168. 이 있는 행 찾기
egrep '192\.168\.' dd | more -10
192.168, 192.16, 192.0 … 이 포함된 행 찾기
ip 주소 찾기
egrep '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' dd
'Linux' 카테고리의 다른 글
awk (0) | 2022.12.16 |
---|---|
sed (스크립트) (0) | 2022.12.15 |
VMware 네트워크 새 세팅 (0) | 2022.12.13 |
linux routing (Networking 문제 트러블 슈팅) (0) | 2022.12.06 |
DHCP Mac Address Filtering (0) | 2022.12.06 |