shell编程之grep与正则表达式
元字符:^:锚定行首用法格式:"^pattern"
grep --color=auto '^root' /etc/passwd
$:锚定行尾用法格式:"pattern$"
grep --color=auto 'sh$' /etc/passwd
grep --color=auto '^root$' /etc/passwd #查找以root自成一行的行
grep '^$' /etc/rc.d/rc.sysinit | wc -l #统计空白行的行数
.:匹配任意单个字符
*:匹配紧挨在其前面的字符任意次(包含零次)
a*b #b之前任意个a
.*:任意长度的任意字符
grep --color=auto "r.*h" /etc/passwd
grep --color=auto "r.*h$" /etc/passwd#以r开头,h结尾的行
[]:匹配指定范围内的任意单个字符
小写字母
大写字母
数字
[:lower:] 小写字母
[:upper:] 大写字母
[:digit:] 数字
[:alpha:] 所有字母
[:alnum:] 所有数字和字母
[:space:] 空白字符
[:punct:] 标点符号
[^]:匹配指定范围外的任意单个字符
\?:匹配紧挨在其前面的字符0次或1次
a\?b #b前面出现0个或1个a
\{m,n\}:匹配其前面的字符至少m次,至多n次
\{0,3\}至多3次
\{3,\} 至少3次
\{m\} 精确匹配m次
grep "a\{1,2\}b" grep.txt#b之前的a出现1次到2次
grep ".\{2,5\}"/etc/rc.d/rc.sysinit#以b(不区分大小写)开头,中间出现2到5次任意字符,后面跟t(不区分大小写)
\
grep ".\{2,5\}\>"/etc/rc.d/rc.sysinit
grep "\"/etc/rc.d/rc.sysinit #词首词尾都锚定 锚定单词
页:
[1]