一、grep命令格式及常用选项
命令格式:grep [options] "pattern" Files
[options]参数
--color 匹配到的字符用高亮颜色显示出来
-v 反向选取匹配到的内容
-i 不区分字符大小写
-E 使用扩展的正则表达式,等同于"egrep"命令
二、正则表达式(分为基本正则表达式与扩展正则表达式)
2.1 基本正则表达式(工作在贪婪模式,尽可能长的匹配符合模式的内容)
2.1.1 元字符:
.: 匹配任意单个字符;用法格式“a.c”
*: 匹配紧挨在其前面的字符任意次;用法格式”a*b”
.*: 匹配任意字符任意次;用法格式“a.*b”
[]: 匹配指定范围内的任意单个字符;用法格式”[a-z]”
[^]: 匹配指定范围外的任意单个字符;用法格式”[^a-z]”
\?: 匹配紧挨在其前面的字符0次或1次;用法格式”a\?b”
\{0,n\}:匹配其前面的字符0次到n次;用法格式"a\{0,3\}b"
\{m,\}: 匹配其前面的字符至少m次;用法格式 "a\{2,\}b"
\{m,n\}:匹配其前面的字符至少m次,最多n次;用法格式“a\{1,3\}b”
\<:锚定词首;用法格式“\<pattern”
\>:锚定词尾;用法格式“pattern\>”
\(\):分组匹配;用法格式“\(a.b\).*\1”
2.1.2 简单示例:
查看/etc/passwd文件中包含"r..t"字符的行;
查看/etc/passwd文件中包含"root"单词的行;
查看/etc/passwd文件中以r开头以sh结尾的行;
找出某文件中的,1位数,或2位数;
[:lower:] 小写字母;等同于”a-z”
[:upper:] 大写字母;等同于”A-Z”
[:digit:] 数字;等同于”0-9”
[:alpha:] 大小写字母,等同于”a-zA-Z”
[:alnum:] 大小写字母及数字;等同于”a-zA-Z0-9”
[:space:] 空白字符
[:punct:] 标点符号
2.2 扩展正则表达式(egrep、grep -E) 注:在基本正则表达式基础上支持这些元字符
2.2.1 元字符:
?: 匹配紧挨在其前面的字符0次或1次;用法格式”a?b”
{m,n}:匹配其前面的字符至少m次,最多n次;用法格式“a{1,3}b”
{m}: 精确匹配m次;用法格式“a{2}b”
(): 分组匹配;用法格式“(a.b).*\1”
|: 或者;用法格式”a|b”
+: 匹配其前面的字符至少1次;用法格式“a+b”
2.2.2 简单示例:
显示/boot/grub/grub.conf文件中以一个或多个空白字符开头的行;
找出ifconfig命令结果中的1-255之间的整数;
查找/etc/rc.d/rc.sysinit中符合“任意单个字符后面跟了一个n,n后面跟了任意长度字符,而后又跟了任意单个字符后面跟了一个n”但后面的任意一个字符后跟了一个n要与前面的字符相同;