1. 문자 일치
. 단일 문자 일치
[ ] 지정된 범위 내의 모든 문자 일치
[^] 지정된 범위 내의 모든 문자 일치
[:alpha:] 알파벳 문자
[:lower:] 알파벳 소문자
[:upper:] 알파벳 대문자
[:digit : ] 숫자
[:alnum:] 영숫자
[:space:] 캐리지 리턴, 라인 피드, 세로 탭, 피드 등 공백 문자(인쇄 금지) 페이지 나누기
[:punct:] 구두점 문자
[:cntrl:] 제어 문자(인쇄 금지)
[:print:] 인쇄 가능한 문자
일반적으로 두 개를 사용합니다. 다음 예에서는 대괄호를 사용합니다.
2. 일치 횟수
* 언제든지 이전 문자와 일치합니다.
.* 모든 길이의 문자와 일치합니다(grep "r.*와 같은 탐욕스러운 모드에 유의하세요). t" /etc/passwd )
x{m,n} 선행 문자가 최소 m번, 최대 N번 나타나도록 지정합니다.
x{m,} 선행 문자가 최소 m번 나타나도록 지정합니다.
x{0,n} 선행 문자가 최대 N번 나타나도록 지정합니다.
x {m} m번 정확하게 일치
? 선행 문자를 0 또는 1번 일치
3. 앵커
1.^ 줄 시작 부분에 앵커 grep "^ r..t " /etc/passwd
2.$ 앵커 라인 끝 grep "h$" /etc/passwd
3.^$ 앵커 빈 라인 grep "^$" /etc /passwd
4.< (b) grep " 5.> 단어 시작 부분 grep "r ..t>" /etc/passwd 예(혼동하기 쉬움): 에는 하나 이상의 공백 문자가 포함되어 있습니다. grep "[[:space:] ]{1,}" /etc/passwd 에는 공백이 아닌 문자가 하나 이상 포함되어 있습니다. grep "[^[:space:]]{1,}" /etc/passwd 에는 다음이 포함됩니다. 공백 문자가 없습니다 grep -v "[^[:space :]]{1,}" /etc/passwd 6. () 그룹 문자 grep "(l..e).*1r" 예: grep --color "l([13]):1:.*:1" /etc/inittab 4. 옵션 -v 결과 부정 -i 대소문자 무시 -o 일치하는 문자열만 표시(행의 다른 내용은 표시되지 않음) - E 확장 정규 표현식 지원 -A n 일치하는 줄 아래에 n 줄 표시 -B n 일치하는 줄 위에 n 줄 표시 -C n 위에 n 줄 표시 그리고 일치하는 줄 아래 연습: 1. 시스템에서 user1에 대한 관련 정보를 찾습니다. (user11, myuser1을 미리 생성) (오류 발생 가능성 있음) grep "user1" /etc/passwd user1을 포함하는 모든 줄 grep " useradd -c "user1's 삼촌" /etc/passwd -c는 주석입니다 grep "^ 일치 2. 사용자로 시작하고 뒤에 숫자가 오는 시스템에서 사용자에 대한 관련 정보를 찾습니다. grep "^user[0-9]{1,}>" /etc/passwd 3. /etc/inittab에서 다음 두 줄의 텍스트 특성을 분석합니다. 유사한 두 줄 패턴이 발견된 에서는 각 줄의 숫자가 동일해야 합니다. l1:1:wait:/etc/rc.d/rc 1 l3:3:wait:/etc/rc.d/rc 3 grep " l([13]):1:.*:.* 1" inittab 확장: 위의 모든 특성과 일치: grep "l([0-9]):1:.*:.* 1 " inittab 10을 초과하는 경우 최소 일치 항목을 추가해야 합니다: grep "l([0-9]{1,}):1:.*:.* 1" inittab 4. /proc/meminfo 파일에서 대소문자를 구분하지 않고 s로 시작하는 행을 표시합니다. grep "^[sS]" /proc/meminfo 5. nologin 포함 grep "nologin$" /etc/passwd 행 6. #으로 시작하고 그 뒤에 하나 이상의 공백 문자가 오고 그 뒤에 임의의 행이 오는 /etc/inittab을 표시합니다. 공백이 아닌 문자 사용 grep "^#[[:space:]]{1,}[^[:space:]]" /etc/inittab 7. /inittab에는 두 개의 콜론 사이에 숫자가 있는 줄이 포함되어 있습니다 grep ":[0-9]:" /etc/inittab 8. /boot/grub/grub.conf 표시 파일에 하나 이상의 공백 문자가 있는 경우 grep ":[0-9]:" /etc/inittab 9. 숫자로 시작하고 끝나는 /etc/inittab 파일을 표시합니다. 같은 숫자로 시작하는 숫자로. grep "^([0-9]).*1$" /etc/inittab 10. /etc/inittab 파일에 공백이 아닌 줄 표시 grep -v "^$" /etc/inittab 11. 현재 네트워크 인터페이스의 관련 IP 주소를 가져옵니다(127.0.0.1 제외) ifconfig |grep "inet addr" | grep - v "127.0.0.1"| 컷 -d: -f2|컷 -d" " -f1 ifconfig |grep -A 1 "eth" |grep -o "addr:[0-9.]{1,}"|cut -d: -f2 5. 확장 정규식 과 정규 표현식의 차이점: ()는 ()로 대체됩니다. {}는 {} 회 이상 일치로 대체됩니다. 선행 문자 수 | 또는 예: 는 ifconfig 결과에 나타나는 1-255 사이의 정수와 일치합니다. ifconfig |grep --color -E "<([1-9]|[1-9][0-9]|1[1-9][0-9]|2[0-5][0- 5 ])>"