6 R& L  j' j  Tlinux grep命令

: k5 b+ a! l' [/ u7 Y9 z1.作用

, \( n' o4 s; D# h0 O4 Q( \4 ]0 eLinux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。# Y  D/ Y! o; g

4 I8 h; t( V6 x5 y0 J8 r" W2.格式

! e# c: `% a, Z3 ^* u( k, k8 qgrep [options]2 Q/ V! U3 @6 E5 t+ f

! X$ D! ~7 S$ o# J. q3 G

3.主要参数

% B4 z+ B8 y9 s% n3 y! Q[options]主要参数:

6 t( J$ ^! o6 O1 ^0 r; O/ c' h-c:只输出匹配行的计数。& ~! M1 C  q  r. s, d

-I:不区分大 小写(只适用于单字符)。/ c4 g5 E% ?& E  W2 e

-h:查询多文件时不显示文件名。" q$ T; r  ^, M' P- M

-l:查询多文件时只输出包含匹配字符的文件名。4 K9 |5 M# e* z( `/ q* d3 g; U

-n:显示匹配行及 行号。( w9 {; p% u/ r3 M( [

-s:不显示不存在或无匹配文本的错误信息。9 v5 v: M5 ~8 v* j

-v:显示不包含匹配文本的所有行。

* K9 H) \3 m$ z* A' Jpattern正则表达式主要参数:8 i# d0 ~) K6 c% g

\: 忽略正则表达式中特殊字符的原有含义。

. b+ W# I! P! h' }^:匹配正则表达式的开始行。! ^/ d+ |5 F' Q; z4 R2 _; T+ F

$: 匹配正则表达式的结束行。

! j! m" `  i6 w6 O, [0 w) ]/ R\

\>:到匹配正则表达式的行结束。

* V" E# A8 y3 \  I[ ]:单个字符,如[A]即A符合要求 。2 q7 B/ H: C9 n% s/ m% j  i0 t: B; n

[ - ]:范围,如[A-Z],即A、B、C一直到Z都符合要求 。8 r2 C9 e$ A, @+ R" t/ X

。:所有的单个字符。

- t- _% x7 ]/ L3 M5 r( k+ a! U* :有字符,长度可以为0。

* A7 }3 w8 m4 k8 x1 F3 F4 {# F) `( l" y2 }+ M1 c$ b' i8 W0 h

4.grep命令使用简单实例

2 G  m! @# s# F+ t$ grep ‘test’ d*

. m" x& S/ Z: v" h/ o2 f  ?5 U! A显示所有以d开头的文件中包含 test的行。: W1 Y2 y3 _7 h- h4 J4 F

$ grep ‘test’ aa bb cc

6 J" Z( a/ z0 I3 S3 ]. \显示在aa,bb,cc文件中匹配test的行。

$ S0 I* k0 H/ d+ K, |% Y$ grep ‘[a-z]\{5\}’ aa# y* n+ c: L9 T: M: j1 f7 p# T

显示所有包含每个字符串至少有5个连续小写字符的字符串的行。: X0 s) i, x0 {

$ grep ‘w\(es\)t.*\1′ aa

' G7 J9 d) z) c" k如果west被匹配,则es就被存储到内存中,并标记为1,然后搜索任意个字符(.*),这些字符后面紧跟着 另外一个es(\1),找到就显示该行。如果用egrep或grep -E,就不用”\”号进行转义,直接写成’w(es)t.*\1′就可以了。

; L' Y. g" b6 L* K" j& X5 U: T

$ W2 I+ j3 ]; s# b( J* H6 x5.grep命令使用复杂实例0 A; m& [# m9 X6 s; ~

假设您正在’/usr/src/Linux/Doc’目录下搜索带字符 串’magic’的文件:% l% K! E3 h1 m4 X1 ?; _# e

$ grep magic /usr/src/Linux/Doc/*) N* O, R, t  t& F1 ~+ j0 {# x- Y

sysrq.txt:* How do I enable the magic SysRQ key?

5 w2 h% O/ N  R6 R3 w/ Ssysrq.txt:* How do I use the magic SysRQ key?

3 ~, F: ]: r+ T+ v) Y4 X其中文件’sysrp.txt’包含该字符串,讨论的是 SysRQ 的功能。

& s, \( q1 s# c. T默认情况下,’grep’只搜索当前目录。如果 此目录下有许多子目录,’grep’会以如下形式列出:

& g$ r, S9 M! V2 @$ }grep: sound: Is a directory' B0 X  c; x; D! k$ C

这可能会使’grep’ 的输出难于阅读。这里有两种解决的办法:

) }0 F5 e6 E! ^2 }8 v1 v明确要求搜索子目录:grep -r4 L+ F# |; I* g% J6 D: d

或忽略子目录:grep -d skip* G" M0 e4 a5 ], ~( j3 ]3 ?8 [* M' a

如果有很多 输出时,您可以通过管道将其转到’less’上阅读:1 T$ V- e' ]5 Y' M

$ grep magic /usr/src/Linux/Documentation/* | less# c& @, w0 V) b, D2 G) t

这样,您就可以更方便地阅读。: D4 ]4 u7 a' K% V; n# Q8 k$ }

7 C1 I' b) R$ ?4 {4 _& |有一点要注意,您必需提供一个文件过滤方式(搜索全部文件的话用 *)。如果您忘了,’grep’会一直等着,直到该程序被中断。如果您遇到了这样的情况,按 ,然后再试。

- ^1 n# f) c2 J- o3 c

) f2 ~( f8 @+ Y0 ^* c& A下面还有一些有意思的命令行参数:, }3 A$ L+ d* w" W/ T

grep -i pattern files :不区分大小写地搜索。默认情况区分大小写,/ U  |- m0 ]6 A2 [# T

grep -l pattern files :只列出匹配的文件名,/ \6 I* Q; A; B

grep -L pattern files :列出不匹配的文件名,

1 Q- S$ b" }' |& u: E2 F2 M) ~grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配’magic’,而不是’magical’),

; ^% q$ g+ n8 ~- i/ s5 e4 G7 C8 Z8 dgrep -C number pattern files :匹配的上下文分别显示[number]行,: Y) G! K0 T# l* G! i& W& }

grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行,

# F9 J$ n6 [. W% D1 Agrep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。* \, t; k$ |+ u$ I! L

& Q( E5 f- b9 k( K+ P4 `grep -n pattern files  即可显示行号信息( d/ S( \1 _2 |5 ?# d9 ^

( {% x7 X1 X! w+ J2 X. P* @- W( g% e

grep -c pattern files  即可查找总行数% T+ @( ^& k. r$ y# v+ e

2 F  H5 p, z; A2 H! K这里还有些用于搜索的特殊符号:1 p( b- Q* l' w3 j

\< 和 \> 分别标注单词的开始与结尾。

( K0 @; y& V2 J例如:

: R' ^* }9 A& g5 b0 X' wgrep man * 会匹配 ‘Batman’、’manic’、’man’等,

; n! L7 [$ I8 B- f* `; Ygrep ‘\

0 O! W( r4 K! f$ V+ _8 v! [  Cgrep ‘\’ 只匹配’man’,而不是’Batman’或’manic’等其他的字符串。8 [2 ~6 ~( V, U. H6 x; x6 `

‘^’:指匹配的字符串在行首," ^& a/ g3 |8 @% o/ {

‘$’:指匹配的字符串在行 尾,

. ]" L2 H* R3 F

. K4 q* [: b" ?3 u4 m6 Q8 |- ]

v+ ~5 N0 t) V( L8 \4 Z  o' N

! _& l$ U/ L: U# h

7 X. n. l- y7 h7 U$ d% ?& K5 x6 j! ?$ ~

Grep 命令 用法大全/ d0 W' d9 U. U: i+ M

1、 参数:

1 b6 v0 u8 ~2 o9 c) r4 _" d# l-I :忽略大小写

; a0 O0 Y+ ]/ K' b* F-c :打印匹配的行数

- ~1 Y% Q+ Y  ^: y( v-l :从多个文件中查找包含匹配项

2 l. v# |; X# t) p( x) @-v :查找不包含匹配项的行 $ m% ]' p& M0 ^; `) e

-n:打印包含匹配项的行和行标

6 c$ o* s" [9 Y$ ^! U

) \7 G% i1 x3 j  |5 U  G, u5 M2、RE(正则表达式) 7 N, k# b4 O) p' G9 q& d* M

\ 忽略正则表达式中特殊字符的原有含义

" f# J0 g. U1 l& w- o  e^ 匹配正则表达式的开始行 1 c$ w  w% O8 [& ], G

$ 匹配正则表达式的结束行 ! F* D  U! y# n+ ~

\< 从匹配正则表达式的行开始 & C5 q1 S8 \8 E1 Z. T

\> 到匹配正则表达式的行结束 , p0 t/ a' u0 E5 ?% [8 a0 m

[ ] 单个字符;如[A] 即A符合要求

$ r: @( y$ b' U. g. I[ - ] 范围 ;如[A-Z]即A,B,C一直到Z都符合要求

3 F' X# ?) O2 ?1 y: y( o" K. 所有的单个字符 1 k1 d$ E9 c; J

* 所有字符,长度可以为0

4 G9 O0 a% ]9 Y; }7 M

" Y* [5 I/ e: k9 T* f+ r# c0 t: X3、举例 * @" m* B6 x6 {6 Z7 x9 t/ G) @

# ps -ef | grep in.telnetd

, r% j! U0 v, Wroot 19955 181 0 13:43:53 ? 0:00 in.telnetd

" z5 L/ ~: k& y) t6 b+ o/ @' S- V, f7 f& f: j

# more size.txt size文件的内容 ; L4 ~- j8 T( q+ O3 u. u

b124230 % u. E. R( h6 ~3 U

b034325 # m. t# {& z4 f3 m% U7 y

a081016 # S3 f9 |$ ^8 i9 r

m7187998

8 c- f+ m9 Y3 ^3 R! K* B* ?m7282064

7 u' ^$ L8 i8 I# L; t% P" V. Ta022021

0 M( r1 T9 o3 r% J* H, n8 ra061048 6 S1 K! G/ |. V, \5 |

m9324822 ) @# }6 l8 P9 N; P1 h. I

b103303 6 _. o% ~7 W. o5 {( p/ G6 s

a013386 ; O5 B! N6 `, C

b044525 ! d. b1 o1 ?% n1 E1 d5 u

m8987131 : }9 W  U! l& N: d( |

B081016

; \6 {7 }2 N- v9 I, FM45678 + i: s9 `9 u# B9 ]

B103303 6 h* t: n2 B: _  j

BADc2345 $ @7 r' `6 Y, F" v0 H

% t$ t/ r% x. c: v/ E* i5 u

# more size.txt | grep '[a-b]' 范围 ;如[A-Z]即A,B,C一直到Z都符合要求

9 m/ _0 n$ B, F+ l' tb124230 3 B# ?, i3 ~, s8 j7 d2 Z% b

b034325

+ z9 C, t; K4 a6 W4 sa081016

4 Z. Y6 ^$ C5 w2 [" |' C+ g& c- da022021 : G& o* ^& I. s0 M! a1 T4 f

a061048 , X0 l2 Z" Y; g! g& _

b103303

$ {' D& E6 k+ p" L0 \! G5 wa013386

0 o- |) m2 p  F/ ^1 F/ ~% C& ^b044525 ! i% `. D5 O9 u8 n6 c: Q/ i& G

# more size.txt | grep '[a-b]'*

1 R, z6 Y+ O5 {1 d2 Sb124230

2 d5 W! I! ^8 n  {$ P( J% \b034325

7 `9 K9 c# K5 Z3 Ga081016 & x5 R# l& ]. K1 |4 C8 ]

m7187998 ; K) E/ |2 o4 M7 I% p4 |$ ~

m7282064 1 F; i; p& [" q0 J3 D4 F

a022021 - z5 C7 d5 f! ]+ {  u! D6 j

a061048

- `0 ]. M6 ]4 {3 {' I1 E8 Wm9324822 0 z2 S, v, z0 E9 {

b103303 0 n* J% a+ W9 A* e! D; M: K

a013386 ' I2 {( {9 @7 @* Q$ h

b044525 8 G. e- c, ~% q+ B/ e, O

m8987131

6 [. V( B2 f; IB081016 , b% \+ `7 }0 f0 H

M45678 9 R% R9 q7 k+ g4 C; @

B103303

7 r' K6 |/ f5 O! wBADc2345 - \, y& l1 \4 U( A' e9 L# D) U

* K  p0 m# B' p" \# more size.txt | grep 'b' 单个字符;如[A] 即A符合要求

# U! m( h9 U0 J' {( pb124230 - ?4 v# \1 g: I% H3 o# a

b034325

/ o6 @9 {# G  hb103303 / o, `6 y& p3 T, F

b044525

8 |4 I( a& w- S! c7 ~- n' E# more size.txt | grep '[bB]'

0 O5 t% N. r3 n- \b124230 + \- z) [$ U" n/ I) W) n

b034325 % g7 [8 o, N8 l: \4 Z7 [4 Y

b103303 ! e- j% {1 U0 p/ ~7 X) Y3 J

b044525

' a# y) c" s% f' o6 C# gB081016 9 i3 P2 t4 r) W& o; x  Y6 Y( v8 L

B103303 : `* S( V* v2 z# K0 ?# v. L7 g

BADc2345 ! @: ^+ `) x* e$ s# R

, p) z% i2 p5 a4 }+ i4 y

# grep 'root' /etc/group - d$ @$ @$ z. R0 H+ ~

root::0:root

) z3 S$ `  ~) r/ M6 ubin::2:root,bin,daemon 9 c+ b3 e4 C3 M5 h5 g8 E

sys::3:root,bin,sys,adm

3 l/ v0 [, @# \: Qadm::4:root,adm,daemon

! h8 u/ t# {4 k. Huucp::5:root,uucp

/ P& c( R$ ?: |  {! I+ smail::6:root

2 C; C$ X: x% y9 v; itty::7:root,tty,adm $ F1 d; X- ^, J8 T6 x1 u

lp::8:root,lp,adm

) f& V- W# @. x% j$ jnuucp::9:root,nuucp 3 _6 _$ t, x6 y9 T8 @

daemon::12:root,daemon % l, i9 Y" F# L0 ]5 }' F' h/ ?

) x! l0 q! q4 G+ O+ v# grep '^root' /etc/group 匹配正则表达式的开始行

( b* @% V0 O. Q. W0 G' p1 zroot::0:root ! r, t* n; f2 \

( d0 _4 i/ a9 g2 C3 A) Y7 H

# grep 'uucp' /etc/group : p0 H+ G; Q( Q5 }& Z

uucp::5:root,uucp 8 e' O8 z0 i/ B, n: e! u' E9 \

nuucp::9:root,nuucp 8 G. D/ J7 b$ C' L9 k8 G) j+ f

: ?) n6 J5 J& O# ?; c# V2 ?, T5 P

# grep '\

uucp::5:root,uucp * `7 E$ D1 l% R% q: F+ Y

: ?) w" v" L( S, h+ t

# grep 'root$' /etc/group 匹配正则表达式的结束行

! d* V; H8 y; eroot::0:root : G2 V  L  S' o) z5 d

mail::6:root

/ L6 }5 S' G; e- z) w' [

( W- b! l! P0 y  ~9 j. ?. d. u7 ?" Q# more size.txt | grep -i 'b1..*3' -i :忽略大小写

* K% q" R: i6 _: H

8 @% D# X: u% T# I- jb124230 & o0 w; R  W5 s. B

b103303

, w& Y$ |$ m+ aB103303

: n) V3 o" r: L! y; D" t0 @# x9 F% N8 w+ y& {

# more size.txt | grep -iv 'b1..*3' -v :查找不包含匹配项的行 # P; T9 f2 q$ K) `1 _* H

: f, f! E6 a9 [9 R- [( Z+ Q* Pb034325

; G4 v' x, M( c5 P& }! c9 r+ l  ra081016

! @  l, k- k. @! ?4 U: fm7187998

" V& }; f# H$ om7282064

b3 S& c; z, N$ \# l0 Ma022021

$ r" A. b" c7 b8 Ta061048 ; F2 w6 p; l; ]6 Y9 ]9 t# g

m9324822

. ~) ]/ u( F, s+ V  `+ V( Ca013386

% v- E! L7 m/ g/ _9 Fb044525

% i9 o8 c' j  @- n& ]" Gm8987131 " \; Q8 ~9 e- U

B081016 ! c$ P4 }3 e8 z* s' x) N1 d

M45678 ! m: |  m3 F0 l4 B7 e/ L

BADc2345 1 F3 k3 T; f2 W

3 H  }- b' B5 V# A. K8 M4 k

# more size.txt | grep -in 'b1..*3' / L& _; X- Y0 x; d5 Q, k

1:b124230 / e% A6 E5 u% \

9:b103303 # A/ e! W( Q1 X  o0 A1 I

15:B103303

3 a; w+ b/ }! I" t, {; m% T4 |. A$ x) _8 U

# grep '$' /etc/init.d/nfs.server | wc -l

& w1 m/ u0 S$ L" n/ H  Y* f# ~128

$ ^8 t! Q7 V9 M- V! v3 P0 O8 q# grep '\$' /etc/init.d/nfs.server | wc –l 忽略正则表达式中特殊字符的原有含义 : ^" @. f9 o# m7 t" i7 H

& o2 |% n0 W% U$ u7 T0 I9 \$ L15

3 @6 v  G$ m* Q7 ]2 e0 u2 ]# grep '\$' /etc/init.d/nfs.server + y- D+ ^  b) q

case "$1" in 8 a, f( S$ c7 c% ~3 t& S" M

>/tmp/sharetab.$$

% J7 f% Y0 U9 F( [[ "x$fstype" != xnfs ] &&

& u5 m" P  O8 ~2 _echo "$path\t$res\t$fstype\t$opts\t$desc"

5 d4 V5 N) a; l% b1 M: N% q5 M>>/tmp/sharetab.$$ ! c* D. M$ t; a( g) w- y

/usr/bin/touch -r /etc/dfs/sharetab /tmp/sharetab.$$

5 ]+ a- j$ F5 c/usr/bin/mv -f /tmp/sharetab.$$ /etc/dfs/sharetab 9 ^; t. }% y% @

if [ -f /etc/dfs/dfstab ] && /usr/bin/egrep -v '^[ ]*(#|$)' ' H8 G& L, b3 l1 L

if [ $startnfsd -eq 0 -a -f /etc/rmmount.conf ] &&

" B/ H7 z/ _# X/ Z9 W3 {/ p, P4 `if [ $startnfsd -ne 0 ]; then ! ^5 y4 |& y) }( O5 D4 u

elif [ ! -n "$_INIT_RUN_LEVEL" ]; then 4 h7 P7 n% C- F4 e4 ?9 d# p

while [ $wtime -gt 0 ]; do 5 e3 F- M8 Y3 ~5 l

wtime=`expr $wtime - 1`

; ?, I  R6 ]# v, pif [ $wtime -eq 0 ]; then ( x+ s5 ]" w+ x& _

echo "Usage: $0 { start | stop }" . Y1 s) o, |+ E: L! k9 C, z" W

7 k( M% s" [# ~& I/ V9 c3 ^) A' q# more size.txt 0 f, s1 Y# D9 y, N0 b/ B

* `: g  `- c8 |- B1 f  b; vthe test file

% M7 V' C9 E9 G' V1 Ltheir are files

s6 o& A( d  B1 |( m  C% C) PThe end 1 J( K# P) e) {/ ~! G1 E6 u

/ T3 h' l$ H6 t; B, v7 J# grep 'the' size.txt

/ m# N, O' |7 a$ Xthe test file ' F3 B0 K& r7 _

their are files

$ b0 t7 q8 Y8 T+ l2 I5 {7 m& B/ P$ P

# grep '\

the test file 9 Y; ^# m4 E4 Z  V. |1 N$ a

their are files 2 T& M3 ?. y& u7 k# G( _

, W, E. Y; a8 ?( w/ r$ r+ q( y

# grep 'the\>' size.txt " r9 A+ B4 o4 J

the test file

" @& }: {3 [% X! ]- r$ {$ t2 ~9 p2 U, d" e# D$ T

# grep '\' size.txt + j& H: y% T: k! ?% R) t/ [

the test file % [5 c, C9 ~: s/ u; ]

9 ]& d/ Q. Z& o& M8 @- R4 M9 y5 T# grep '\' size.txt

: `( {# ?8 }8 Hthe test file

' ]- T' ?8 I. r2 C2 `$ T

) ?; l/ D9 x5 l( ?8 t- v==================================================================# o' }8 F6 j2 J0 {( r$ v% c

5 Q/ ~# i( X; _% R  ~) y  V9 g5 j1,简介

2 V" z9 @" ~' p7 [使用正则表达式的一个多用途文本搜索工具.这个php?name=%C3%FC%C1%EE" οnclick="tagshow(event)" class="t_tag">命令本来是ed行编辑器中的一个php?name=%C3%FC%C1%EE" οnclick="tagshow(event)" class="t_tag">命令/过滤器:

& N9 H  @5 X  O+ O  H$ X0 z1 W        g/re/p -- global - regular expression - print.- `, a& N- e" ~( y+ D

基本格式4 F* R6 n( Q! P+ _/ j

grep pattern [file...], W# z) {/ ?& q; X

(1)grep 搜索字符串 [filename]

! `- u% s- a0 C5 R$ ^* Q1 B2 f(2)grep 正则表达式 [filename]

) O( L% K; X5 v# x, I在文件中搜索所有 pattern 出现的位置, pattern 既可以是要搜索的字符串,也可以是一个正则表达式.) z( W+ g% \9 \8 o# o% w

注意:在输入要搜索的字符串时最好使用双引号/而在模式匹配使用正则表达式时,注意使用单引号9 T9 L  [1 i. l6 s" x

3 o6 y! p; S6 S

2,grep的选项

9 g& G! B+ L) p) s    -c 只输出匹配行的计数

% {# {: Y$ @0 ^4 w9 q+ x    -i 不区分大小写(用于单字符)' Q8 K9 |! }3 Z$ Q

-n 显示匹配的行号

! J( u+ J7 z" s$ C6 k    -v 不显示不包含匹配文本的所以有行

2 e7 m' V5 b: P& g! @) N  t6 ~    -s 不显示错误信息J& u$ X, E/ q/ \% l' k" G% E

-E 使用扩展正则表达式

9 _4 f+ ~3 u- ^5 S' D% P    更多的选项请查看:man grep4 `" t* w* {4 g

( J, m2 Q+ V# |% b0 F+ \$ U3,常用grep实例

3 [- N- L3 f( X7 _1 z( F, b* q6 R1 |2 I- f# b3 o7 N/ R( a. m/ F9 q

(1)多个文件查询

; B, G! F/ f8 y9 W4 W    grep "sort" *.doc       #见文件名的匹配

( M5 P8 ^3 d6 u5 z) F% [4 j$ _, S7 B; C, a7 \. n( |: b

(2)行匹配:输出匹配行的计数: H$ r' [7 D4 y4 v

grep -c "48" data.doc   #输出文档中含有48字符的行数! X1 S+ `% x1 x( s. N

7 y! a- _; v4 b

(3)显示匹配行和行数

N) i  f' m% z  s3 V- N    grep -n "48" data.doc       #显示所有匹配48的行和行号

& r* [. V# R8 _) [, O  K

# ~  X3 c4 o$ i$ M(4)显示非匹配的行

/ z9 N7 f# W: c* i" x0 |3 a( E    grep -vn "48" data.doc      #输出所有不包含48的行% o' W! M! ^6 O4 q

0 Z/ o6 k0 D& M% X6 r) D

(4)显示非匹配的行, [2 k7 W$ D+ T

grep -vn "48" data.doc      #输出所有不包含48的行1 T/ A& U: i  d  G

/ X1 A; e1 i& C/ ^# ?1 [(5)大小写敏感

/ e. x8 k% `! n. t7 w    grep -i "ab" data.doc       #输出所有含有ab或Ab的字符串的行

# u. J! J+ Z; Y" u5 P

5 x* V! M" G, S+ s4 I' [4, 正则表达式的应用" I- Y: ~, M8 x0 z8 W

" x) a. |$ b& ~" ~% W

(1)正则表达式的应用 (注意:最好把正则表达式用单引号括起来)0 i; o; b7 }7 ~2 V: v# m

grep '[239].' data.doc      #输出所有含有以2,3或9开头的,并且是两个数字的行

; W$ ]% n3 r7 ]3 E

! y) A7 e" G% ^2 U  m(2)不匹配测试

4 I+ B8 ?& r7 b3 D6 C    grep '^[^48]' data.doc      #不匹配行首是48的行# g: v% F8 a7 f0 H( k2 V0 ^

@5 W1 o, V6 B6 |; R

(3)使用扩展模式匹配! Z! X! O0 ~3 N. N) d$ Z2 J) N

grep -E '219|216' data.doc

! x5 q* J1 H/ N# x# a: ]

) U/ y% n) }% q7 B% u9 _, R- Z(4) ...

- M. P3 P! H2 D' {0 z    这需要在实践中不断应用和总结,熟练掌握正则表达式。

8 n1 z$ H- @3 J; h9 p+ ^; v2 Q) h6 ]$ u

5, 使用类名/ `* ^9 `( k6 n* V, a% Y+ N

可以使用国际模式匹配的类名:" v: D; o9 G# v1 D& [7 N! t4 E

[[:upper:]]   [A-Z]

# p. ^# L; H% @9 |[[:lower:]]   [a-z]5 I7 E" V# t0 U3 v7 q

[[:digit:]]   [0-9]+ e( |) T: K0 A9 K9 G

[[:alnum:]]   [0-9a-zA-Z]; E) \( `+ J$ _1 ^- ?

[[:space:]]   空格或tabu9 p" ]- U# Z6 i

[[:alpha:]]   [a-zA-Z]

- K% o% f! ]1 ~& `% [7 z5 [* u7 e8 n6 H# J) z! a7 u9 N) C/ e- q" H, U$ f

(1)使用

2 T9 B4 D7 [) T% f; I0 o# W    grep '5[[:upper:]][[:upper:]]' data.doc     #查询以5开头以两个大写字母结尾的行

/ ?0 L- w* d4 m! r0 |( _

Linux命令查fpga信息,linux grep命令相关推荐

  1. Linux登录的shell信息,Linux展示登录Shell信息

    Linux显示登录Shell信息 Linux显示登录Shell信息 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ finger -p Login Name T ...

  2. dos下查询网络内的计算机名,dos下查看ip_dos下查看ip地址_dos查看局域网ip_dos命令查本机ip的命令...

    你是否正在寻找关于dos下查看ip的内容?让我把最全的东西奉献给你: dos命令查本机ip的命令 来源:本站原创 作者:本站2011年06月18日 16:10 分享 [导读] dos查本机ip的命令 ...

  3. linux命令查硬盘wwn,Linux系统怎么查看wwn号

    在linux系统中,pc server主机和fc存储连接的时候,需要涉及到wwn号,那么wwn号要如何查看呢?下面秋天网 Qiutian.ZqNF.Com小编给大家介绍下wwn号在linux各系统下查 ...

  4. 【转】每天一个linux命令(39):grep 命令

    原文网址:http://www.cnblogs.com/peida/archive/2012/12/17/2821195.html Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表 ...

  5. Linux Shell脚本编程--grep命令

    简介 grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它 ...

  6. linux df是否分区,Linux中df命令查询磁盘信息和fdisk命令分区的用法

    df - 报告文件系统磁盘空间的使用情况 总览 df [option]... [file]... posix 选项: [-kp] gnu 选项 (最短方式): [-ahhiklmpv] [-t fst ...

  7. linux中用截取一些信息,Linux如何使用cut命令截取文件信息

    在Linux众多命令中,cut命令可用来截取文件信息,截取Linux字符串,下面将针对cut命令的用法做个详细介绍,感兴趣的朋友可以来学习下. cut命令有截取的意思,可从linux文件或者标准输入中 ...

  8. Linux操作系统基础解析之(五)——grep命令家族及正则表达式初识

    grep号称文本处理三剑客之一,虽然说是三剑客中功能最少也是最简单的,但仍然不能小觑.   grep的全称为:Global search REgular expression and Print ou ...

  9. linux保存动态进程信息,Linux 命令 - top: 动态显示进程信息

    命令格式 top -hv | -abcHimMsS -d delay -n iterations -p pid [, pid ...] 命令参数 -a 根据内存的使用排序. -b 以批处理模式操作. ...

最新文章

  1. ubuntu16.04 安装以及要做的事情
  2. 【HDU2037】今年暑假不AC
  3. DedeCms模板防盗的方法
  4. 字符串相似度匹配算法python_算法字符串相似度得分/哈希
  5. 转载:bug的处理流程
  6. 95-190-744-源码-WindowFunction-WindowFunction
  7. 基于Active Directory的用户验证
  8. zookeeper 事务日志
  9. 用Excel利用RFM模型进行客户细分
  10. Python音频处理基础知识,右手就行
  11. Tolerance Analysis 尺寸公差分析
  12. GAIN: Missing Data Imputation using Generative Adversarial Nets(基于生成对抗网络的缺失数据填补)论文详解
  13. Python切片工具 pillow
  14. win10 程序最小化不在任务栏了?在左下角
  15. bzoj 4398 福慧双修 —— 二进制分组+多起点最短路
  16. IDEA插件下载慢怎么办,几步搞定
  17. C#WPF选择文件和文件夹
  18. Android cec设备,Android和HDMI CEC
  19. Spring IOC 容器源码分析
  20. 实现升序降序功能(Vue、CSS)

热门文章

  1. python思考题实验题整理
  2. HTML5设计原理-------Jeremy Keith在 Fronteers 2010 上的主题演讲
  3. python线程退出_python其中一个子线程,则退出全部线程,再退出进程
  4. c++语言的学习——A+B问题
  5. 猜数游戏,3次猜不对,另外猜下一个数的程序
  6. vue动态获取接口域名
  7. Android Gallery2技术分析
  8. 布局产业互联网,技术策略的变与不变
  9. 【人工智能】未来企业建设AI需三大平台;仅靠算法不能落地智能,企业需要AI核心系统
  10. 没有绿幕,AI给我们造! 超强的稳定视频抠像 (RVM)来了