^
^ 匹配一行的開頭,例如:
[root@hadoop101 datas]$ cat /etc/passwd | grep ^a
會匹配出所有以a開頭的行
$
$ 匹配一行的結束,例如
[root@hadoop101 datas]$ cat /etc/passwd | grep t$
會匹配出所有以t結尾的行
.
. 匹配一個任意的字符,例如
[root@hadoop101 datas]$ cat /etc/passwd | grep r..t
會匹配包含rabt,rbbt,rxdt,root等的所有行
*
* 不單獨使用,他和上一個字符連用,表示匹配上一個字符0次或多次,例如
[root@hadoop101 datas]$ cat /etc/passwd | grep ro*t
會匹配rt, rot, root, rooot, roooot等所有行
[ ]
[ ] 表示匹配某個范圍內的一個字符,例如
[6,8]------匹配6或者8
[a-z]------匹配一個a-z之間的字符
[a-z]*-----匹配任意字母字符串
[a-c, e-f]-匹配a-c或者e-f之間的任意字符
[root@hadoop101 datas]$ cat /etc/passwd | grep r[a,b,c]*t
會匹配rat, rbt, rabt, rbact等等所有行
\
\ 表示轉義,並不會單獨使用。由於所有特殊字符都有其特定匹配模式,當我們想匹配某一特殊字符本身時(例如,我想找出所有包含 '$' 的行),就會碰到困難。此時我們就要將轉義字符和特殊字符連用,來表示特殊字符本身,例如
[root@hadoop101 datas]$ cat /etc/passwd | grep a\$b
就會匹配所有包含 a$b 的行。