|
|
楼主 |
发表于 2018-12-8 20:43:41
|
显示全部楼层
grep -rn "hello,world!" *; M( d! _; x/ y. M' ^
$ d: ?0 B# y9 w$ x$ e0 |9 g, p # x% c0 }7 s: u$ D
7 h, J" u7 i- X+ Y ]( I* : 表示当前目录所有文件,也可以是某个文件名/ z2 k( n6 k# c+ i( v% r3 o |2 s
5 `% a; v5 A; n" |+ E6 w, W-r 是递归查找
8 A6 B$ g2 U+ r$ D% Q) e g/ _- n5 ?8 |; ]" k: W. ]1 R- [
-n 是显示行号
8 @, {! o+ I" g: r$ H% \$ c! N3 u" w% M4 B9 \8 j
-R 查找所有文件包含子目录 Z) x7 j( Z5 `& Y5 f; S9 E
" ~7 G, s9 z+ t: w* a
-i 忽略大小写
/ R2 P7 y! d: k- p1 n2 Z8 Q9 _. h: N
下面是一些有意思的命令行参数:
# t: c2 n6 [( c! O) T3 ]" a# U& q- N+ e+ z. Y1 o" h1 K' b
1 w* J# E: t, z' |% p- X
) J1 m2 y2 N Dgrep -i pattern files :不区分大小写地搜索。默认情况区分大小写,
) g* b* U8 _1 \ R" A+ \7 B: l0 h" K8 S6 b8 @/ h
grep -l pattern files :只列出匹配的文件名, ' M% t# v" J4 _( @( v! ]3 }
; U1 w5 V' J# ~5 X* Ngrep -L pattern files :列出不匹配的文件名, - y' o9 ?$ H9 |4 x6 `) l: `3 P
1 W, m; j6 t5 m! {
grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’), 6 a" {9 X" _0 v. ]
* p2 _/ Y7 c }$ f7 n( p3 m# R; Q" [1 ggrep -C number pattern files :匹配的上下文分别显示[number]行,
' H" c+ r' x3 C/ A* j* U- Y" S5 F& z6 Z9 k/ k$ J* m
grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行,
, h+ [3 \7 q8 {) L( ~; y& ]% U0 k9 _
grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。
4 \$ i I* A& z/ B" L2 o9 p; r( J/ i& n# n5 M0 B
这里还有些用于搜索的特殊符号:3 o! h0 g! h- r1 s& X
0 d4 B* r- A/ M' n+ d) K
+ i- Q- p7 U9 [$ M; q# p
7 f, V; E1 A! A0 {\< 和 \> 分别标注单词的开始与结尾。- C# J P3 A& n% o
( w+ p5 T0 \- T
例如: & n: J8 u4 k0 w2 Z# S& ]) W
- o4 \& r b w5 y$ G7 \
grep man * 会匹配 ‘Batman’、‘manic’、‘man’等, , Y( f+ @% b6 V9 m/ N
& j- V7 K/ M" J
grep '\<man' * 匹配‘manic’和‘man’,但不是‘Batman’, & r4 e/ ?4 K( G# U
0 J# J! D0 S* B/ Y" N8 Xgrep '\<man\>' 只匹配‘man’,而不是‘Batman’或‘manic’等其他的字符串。 5 o3 U- Z+ ^0 A+ T* c
7 y+ d/ I- R$ z/ D- @ o
'^':指匹配的字符串在行首, ( ^, Y/ o6 @" \6 l' a/ g& T
' e* Q8 B( a: }6 A; x'$':指匹配的字符串在行尾, |
|