字符 | 说明 | 备注 |
---|---|---|
d | 匹配任意单个0-9的数字 | |
D | 匹配任意单个非数字字符 | |
t | 匹配单个横向制表符,相当于一个tab键 | |
s | 匹配单个空白字符,包括空格、tab键 | |
S | 匹配单个非空白字符 | |
n | 匹配换行符 | |
w | 匹配 [a-zA-Z0-9_] | |
W | 匹配 [^a-zA-Z0-9_] |
如:我们以下面这个文件为例,其中第5行为一个空格,第7行为一个制表符(tab)
代码语言:javascript复制root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5555:0:sync:/sbin:/bin/sync
shutdown:x:66:0:shutdown:/sbin:/sbin/shutdown
halt:x:777:0:halt:/sbin:/sbin/halt
下面匹配包含一个数字的行
代码语言:javascript复制grep -P -n 'd' passwd
所有包含数字的行都匹配出来了 匹配包含3个数字的行
代码语言:javascript复制grep -P -n 'd{3}' passwd
{3}前面的数字出现3次,这是精确匹配 {3,}表示前面的数字最少出现3次 {,3}表示前面的数字最多出现3次 匹配包含制表符的行
代码语言:javascript复制grep -P -n 't' passwd
第七行包含一个tab键,所以匹配到第七行 匹配包含空格的行
代码语言:javascript复制grep -P -n 's' passwd
s匹配空白字符,所有第五行和第七行都匹配出来了