|
|
楼主 |
发表于 2018-12-8 20:43:41
|
显示全部楼层
grep -rn "hello,world!" *
9 S2 D$ J7 V6 c# Y4 g/ z$ }( K) z3 K' w* ]
B4 L! Z+ [: `8 M r+ ?
& W+ @7 I7 j. z2 g" q7 f* : 表示当前目录所有文件,也可以是某个文件名
6 a; {. c8 v* g% b) ?+ j+ O1 p: m, R$ H9 I* ^, h' B* u
-r 是递归查找
4 M3 V' r$ M9 L/ q, q# N$ S/ {" ]# h
-n 是显示行号* X7 H7 |2 ~( ?
* K, S) c9 j0 Z. _ h E8 t% C-R 查找所有文件包含子目录
$ R+ w! E3 p& `, d ?" s0 d$ {! |$ M' y# U# M2 i
-i 忽略大小写
0 d8 Q6 h$ Y% s: h" m3 k: R6 u
& [4 V; D: f. `, A下面是一些有意思的命令行参数:! \: {5 h* L% n3 ?5 a8 T9 j
* B& |8 _5 u0 k2 i) \1 s( x2 X0 ?
) g! N5 D" y7 i2 X# ?! B- Y' U3 N3 o3 S4 M) v7 u
grep -i pattern files :不区分大小写地搜索。默认情况区分大小写, 3 A; a! p: d5 E- F6 r$ d# d
+ M' ?. I/ j+ s$ Hgrep -l pattern files :只列出匹配的文件名,
5 Z9 b% I, A& Z# N+ B; T! r( _
. }5 b" h. v* ~' R: |9 |grep -L pattern files :列出不匹配的文件名, ( w; n K* ^; p0 i4 Y
2 M3 Z+ s) R7 o+ R" ^$ F
grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’), 8 Y0 ^0 p; C5 M' V6 q
/ V! Z8 W4 S/ w& `7 j2 f b; t& q: R
grep -C number pattern files :匹配的上下文分别显示[number]行, . _ E$ f) R6 h# B( H0 ]
4 t( [1 g9 O" A, M
grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行,
2 M3 S4 w: d7 C- u' d
9 o" |, z$ |6 j2 x" vgrep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。
7 `, ]$ y7 {( C, a5 m# D
2 }) L* H o/ Q/ h W1 s' @+ _; d这里还有些用于搜索的特殊符号:" D# d' [7 N% _
3 B4 c. M Y& ~5 F- E& d( o0 x; E+ p " ]/ Z& l& t) T# P
# ^, s! @# S5 k" c! f3 `0 \\< 和 \> 分别标注单词的开始与结尾。. F. T' ^5 l: Y- Y
1 m) d2 d6 a( d% G' a7 R9 L
例如: " G7 ~" R5 V3 w! a4 C9 X
, E' k/ w* I4 A- _) x0 t1 B4 o" ~grep man * 会匹配 ‘Batman’、‘manic’、‘man’等, 0 a7 C( B. v& y c3 J
# y! m6 b6 q; n T: Y& u- K
grep '\<man' * 匹配‘manic’和‘man’,但不是‘Batman’,
+ B: | F# i- n9 _, ?' }8 q
- f& C' y& l4 v! o3 c- ngrep '\<man\>' 只匹配‘man’,而不是‘Batman’或‘manic’等其他的字符串。
* j3 D, M" Z* c- S
2 @& _8 R, V) S7 k$ A0 z8 ^' I'^':指匹配的字符串在行首,
- f& V; e* u! d, _9 z8 _0 f- U3 r5 s {( f6 u; d5 I K6 @3 g
'$':指匹配的字符串在行尾, |
|