링크 ux grep 명령

8075 단어 linuxgrep
다음으로 이동:http://www.cnblogs.com/end/archive/2012/02/21/2360965.html
1. 리 눅 스 시스템 에서 grep 명령 은 강력 한 텍스트 검색 도구 로 정규 표현 식 으로 텍스트 를 검색 하고 일치 하 는 줄 을 인쇄 할 수 있 습 니 다.grep 는 전역 정규 표현 식 버 전 을 나타 내 는 Global Regular Expression Print 라 고 합 니 다. 사용 권한 은 모든 사용자 입 니 다.
2. 포맷 grep [options]
3. 주요 매개 변수 [options] 주요 매개 변수: - c: 일치 하 는 줄 만 출력 합 니 다. -I: 대소 문 자 를 구분 하지 않 습 니 다. -h: 다 중 파일 을 조회 할 때 파일 이름 을 표시 하지 않 습 니 다. -l: 다 중 파일 을 조회 할 때 일치 하 는 문 자 를 포함 하 는 파일 이름 만 출력 합 니 다. -n: 일치 하 는 줄 과 줄 번 호 를 표시 합 니 다. -s: 텍스트 가 존재 하지 않 거나 일치 하지 않 는 오류 정 보 를 표시 하지 않 습 니 다. -v: 일치 하 는 텍스트 를 포함 하지 않 는 모든 줄 을 표시 합 니 다.pattern 정규 표현 식 의 주요 매개 변수: \: 정규 표현 식 의 특수 문자 의 원래 의 미 를 무시 합 니 다. ^:정규 표현 식 의 시작 줄 과 일치 합 니 다. $:정규 표현 식 의 끝 줄 과 일치 합 니 다. \ <:정규 표현 식 과 일치 하 는 줄 부터 시작 합 니 다. >:정규 표현 식 과 일치 하 는 줄 이 끝 날 때 까지.[]: 하나의 문자, 예 를 들 어 [A] 즉 A 가 요구 에 부합 합 니 다.[-]: 범위, 예 를 들 어 [A - Z], 즉 A, B, C 는 Z 까지 모두 요구 에 부합 한다.:모든 단일 문자 입 니 다. *:문자 가 있 습 니 다. 길 이 는 0 입 니 다.
4. grep 명령 은 간단 한 실례 grep 'test ′ d ∗ 를 사용 하여 d 로 시작 하 는 모든 파일 에 test 가 포 함 된 줄 을 표시 합 니 다.grep 'test' aa bb cc 는 aa, bb, cc 파일 에 test 와 일치 하 는 줄 을 표시 합 니 다.grep '[a - z] 5 ′ aa 는 모든 문자열 에 최소 5 개의 연속 소문 자 를 포함 하 는 문자열 의 줄 을 표시 합 니 다.grep 'w (es) t. * \ 1 ′ aa west 가 일치 하면 es 는 메모리 에 저장 되 고 1 로 표시 되 며 임의의 문자 (.) 를 검색 합 니 다. 이 문자 들 뒤에 다른 es (\ 1) 가 붙 어 있 으 면 이 줄 을 표시 합 니 다.egrep 이나 grep - E 를 사용 하면 '\' 번 호 를 전의 하지 않 고 'w (es) t. \ 1' 이 라 고 쓰 면 됩 니 다.
5. grep 명령 은 복잡 한 인 스 턴 스 를 사용 하여 '/ usr / src / Linux / Doc' 디 렉 터 리 에서 문자열 'magic' 파일 을 검색 하고 있다 고 가정 합 니 다. grepmagic / usr / src / Linux / Doc / 8727 ° sysrq. txt: 8727 ° HowdoIenablethemagic SysRQkey? sysrq. txt: 8727 ° HowdoIusethemagic SysRQkey?그 중에서 파일 은 이 문자열 을 포함 하고 SysRQ 의 기능 을 토론 합 니 다.기본 적 인 상황 에서 진짜 grep 는 현재 디 렉 터 리 만 검색 할 수 있 을 것 이다.만약 이 디 렉 터 리 아래 에 많은 하위 디 렉 터 리 가 있다 면, ′ grep ′ 는 다음 과 같은 형식 으로 열거 할 것 이다. grep: sound: Isadirectory 는 ′ grep ′ 의 출력 을 읽 기 어렵 게 할 수도 있다.여기 에는 두 가지 해결 방법 이 있 습 니 다. 하위 디 렉 터 리 를 검색 하 라 고 명확 하 게 요구 합 니 다. grep - r 또는 하위 디 렉 터 리 를 무시 합 니 다. grep - dskip 에 출력 이 많 을 때 파 이 프 를 통 해 좋 을 것 같 습 니 다. grep magic / usr / src / Linux / Documentation / * | less 를 읽 으 면 더욱 편리 하 게 읽 을 수 있 습 니 다.
한 가지 주의 할 점 이 있 습 니 다. 파일 필터 방식 을 제공 해 야 합 니 다. (모든 파일 을 검색 하려 면 *)프로그램 이 중 단 될 때 까지 'grep' 을 잊 어 버 리 면 기다 릴 것 입 니 다.만약 당신 이 이런 상황 을 만 났 다 면, 누 르 고 다시 시도 하 세 요.
다음은 재 미 있 는 명령 행 인자 도 있 습 니 다. grep - i pattern files: 대소 문 자 를 구분 하지 않 고 검색 합 니 다.기본 상황 구분 대소 문자, grep - l pattern files: 일치 하 는 파일 이름 만 표시 합 니 다. grep - L pattern files: 일치 하지 않 는 파일 이름 을 표시 합 니 다. grep - w pattern files: 문자열 의 일부분 이 아 닌 전체 단어 만 일치 합 니 다 (예 를 들 어 'magical' 이 아 닌 'magic' 과 일치 합 니 다). grep - C number pattern files: 일치 하 는 컨 텍스트 는 각각 [number] 를 표시 합 니 다.줄, grep pattern 1 | pattern 2 files: pattern 1 또는 pattern 2 와 일치 하 는 줄 을 표시 합 니 다. grep pattern 1 files | grep pattern 2: pattern 1 과 일치 하 는 줄 을 표시 합 니 다.
grep - n pattern files 는 줄 번호 정 보 를 표시 할 수 있 습 니 다.
grep - c pattern files 에서 총 줄 수 를 찾 을 수 있 습 니 다.
검색 에 사용 할 특수 기호 도 있 습 니 다. \ < 와 > 는 단어의 시작 과 끝 을 각각 표시 합 니 다.예 를 들 어 grep man * 은 'Batman', 'manic', 'man' 등 과 일치 합 니 다. grep '\ \
ps -ef | grep in.telnetd
root 19955 181 0 13:43:53 ? 0:00 in.telnetd
more size. txt size 파일 의 내용
b124230 b034325 a081016 m7187998 m7282064 a022021 a061048 m9324822 b103303 a013386 b044525 m8987131 B081016 M45678 B103303 BADc2345
more size. txt | grep '[a - b]' 범위;예 를 들 어 [A - Z] 즉 A, B, C 는 Z 까지 요구 에 부합 한다.
b124230 b034325 a081016 a022021 a061048 b103303 a013386 b044525
more size.txt | grep ‘[a-b]’*
b124230 b034325 a081016 m7187998 m7282064 a022021 a061048 m9324822 b103303 a013386 b044525 m8987131 B081016 M45678 B103303 BADc2345
more size. txt | grep 'b' 단일 문자;만약 [A] 즉 A 가 요구 에 부합 한다 면
b124230 b034325 b103303 b044525
more size.txt | grep ‘[bB]’
b124230 b034325 b103303 b044525 B081016 B103303 BADc2345
grep ‘root’ /etc/group
root::0:root bin::2:root,bin,daemon sys::3:root,bin,sys,adm adm::4:root,adm,daemon uucp::5:root,uucp mail::6:root tty::7:root,tty,adm lp::8:root,lp,adm nuucp::9:root,nuucp daemon::12:root,daemon
grep '^ root' / etc / group 정규 표현 식 과 일치 하 는 시작 줄
root::0:root
grep ‘uucp’ /etc/group
uucp::5:root,uucp nuucp::9:root,nuucp
grep ‘\
grep 'root $' / etc / group 정규 표현 식 과 일치 하 는 끝 줄
root::0:root mail::6:root
더 size. txt | grep - i 'b1. * 3' - i: 대소 문자 무시
b124230 b103303 B103303
more size. txt | grep - iv 'b1. * 3' - v: 일치 하 는 항목 이 없 는 줄 찾기
b034325 a081016 m7187998 m7282064 a022021 a061048 m9324822 a013386 b044525 m8987131 B081016 M45678 BADc2345
more size.txt | grep -in ‘b1..*3’
1:b124230 9:b103303 15:B103303
grep ‘$’ /etc/init.d/nfs.server | wc -l
128
grep '$' / etc / init. d / nfs. server | wc – l 정규 표현 식 의 특수 문자 의 원래 의 미 를 무시 합 니 다.
15
grep ‘$’ /etc/init.d/nfs.server
case “$1” in
/tmp/sharetab.
[ "x$fstype" != xnfs ] && echo "$path\t$res\t$fstype\t$opts\t$desc" >>/tmp/sharetab.
/usr/bin/touch -r /etc/dfs/sharetab /tmp/sharetab.
/usr/bin/mv−f/tmp/sharetab.
/etc/dfs/sharetab
if [ -f /etc/dfs/dfstab ] && /usr/bin/egrep -v ‘^[ ]*(#|
)′if[ startnfsd -eq 0 -a -f /etc/rmmount.conf ] &&
if [
startnfsd−ne0];thenelif[!−n“ _INIT_RUN_LEVEL” ]; then
while [ $wtime -gt 0 ]; do
wtime= expr $wtime - 1
if [
wtime−eq0];thenecho“Usage: 0 { start | stop }”
more size.txt
the test file their are files The end
grep ‘the’ size.txt
the test file their are files
grep ‘\
grep ‘the>’ size.txt
the test file
grep ‘\
grep ‘\<[Tt]he>’ size.txt
the test file
==================================================================
1. 프로필 은 정규 표현 식 의 다 용도 텍스트 검색 도 구 를 사용 합 니 다. 이 phop? name =% C3% FC% C1% EE "onclick =" tagshow (event) "class =" t tag "> 명령 은 원래 ed 줄 편집기 의 phop 입 니까? name =% C3% FC% C1% EE" onclick = "tagshow (event)"class =" t tag "> 명령 / 필터: g / re / p – global - regular expression - print. 기본 형식 grep pattern [file...] (1) grep 검색 문자열 [filename] (2) grep 정규 표현 식 [filename]파일 에서 모든 pattern 이 나타 나 는 위 치 를 검색 합 니 다. pattern 은 검색 할 문자열 일 수도 있 고 정규 표현 식 일 수도 있 습 니 다. 주의: 검색 할 문자열 을 입력 할 때 더 블 따옴표 / 패턴 이 일치 할 때 정규 표현 식 을 사용 할 때 단일 따옴표 사용 에 주의 하 십시오.
2, grep 옵션 - c 는 일치 하 는 줄 의 계수 만 출력 합 니 다. - i 대소 문자 구분 없 음 (단일 문자 에 사용) - n 은 일치 하 는 줄 번호 - v 는 일치 하 는 텍스트 가 포함 되 어 있 지 않 기 때문에 줄 - s 는 오류 정 보 를 표시 하지 않 습 니 다. - E 는 확장 정규 표현 식 을 사용 합 니 다. 더 많은 옵션 을 보십시오: man grep
3, 상용 grep 실례
(1) 여러 파일 조회 grep "sort" *. doc \ # 파일 이름 일치
(2) 줄 일치: 출력 일치 줄 의 계수 grep - c "48" data. doc \ # 출력 문서 에 48 글자 가 들 어 있 는 줄 수
(3) 일치 하 는 줄 과 줄 수 grep - n "48" data. doc \ # 48 과 일치 하 는 줄 과 줄 번 호 를 표시 합 니 다.
(4) 일치 하지 않 는 줄 grep - vn "48" data. doc \ # 48 을 포함 하지 않 는 모든 줄 을 출력 합 니 다.
(4) 일치 하지 않 는 줄 grep - vn "48" data. doc \ # 48 을 포함 하지 않 는 모든 줄 을 출력 합 니 다.
(5) 대소 문자 민감 grep - i "ab" data. doc \ # ab 또는 ab 가 함 유 된 모든 문자열 을 출력 합 니 다.
4, 정규 표현 식 의 응용
(1) 정규 표현 식 의 응용 (주의: 정규 표현 식 을 작은 따옴표 로 묶 는 것 이 좋 습 니 다) grep '[239].' data. doc \ # 출력 은 2, 3 또는 9 로 시작 하 는 모든 숫자 를 포함 하고 두 개의 줄 입 니 다.
(2) 테스트 grep '^ [^ 48]' data. doc \ # 일치 하지 않 는 줄 은 48 줄 입 니 다.
(3) 확장 모드 를 사용 하여 grep - E '219 | 216' data. doc 와 일치 합 니 다.
(4)... 이것 은 실천 에서 끊임없이 응용 하고 정리 하 며 정규 표현 식 을 익 혀 야 한다.
5. 클래스 이름 을 사용 하면 국제 모드 와 일치 하 는 클래스 이름 을 사용 할 수 있 습 니 다. [[: upper:] [A - Z] [[: lower:] [a - z] [[[: digit:] [0 - 9] [[: alnum:] [0 - 9a - zA - Z] [[: space:]] 빈 칸 이나 tab [[: alpha:] [- a - zA - Z]
(1) grep '5 [: upper:]] [[: upper:]]' data. doc \ # 조 회 를 5 로 시작 하여 대문자 두 줄 로 끝 나 는 줄 을 사용 합 니 다.

좋은 웹페이지 즐겨찾기