字符 | 说明 | 备注 |
---|---|---|
\d | 匹配任意单个0-9的数字 | |
\D | 匹配任意单个非数字字符 | |
\t | 匹配单个横向制表符,相当于一个tab键 | |
\s | 匹配单个空白字符,包括空格、tab键 | |
\S | 匹配单个非空白字符 | |
\n | 匹配换行符 | |
\w | 匹配 [a-zA-Z0-9_] | |
\W | 匹配 [^a-zA-Z0-9_] |
如:我们以下面这个文件为例,其中第5行为一个空格,第7行为一个制表符(tab)
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
下面匹配包含一个数字的行
grep -P -n '\d' passwd
所有包含数字的行都匹配出来了 匹配包含3个数字的行
grep -P -n '\d{3}' passwd
{3}前面的数字出现3次,这是精确匹配 {3,}表示前面的数字最少出现3次 {,3}表示前面的数字最多出现3次 匹配包含制表符的行
grep -P -n '\t' passwd
第七行包含一个tab键,所以匹配到第七行 匹配包含空格的行
grep -P -n '\s' passwd
\s匹配空白字符,所有第五行和第七行都匹配出来了