grep、egrep、fgrep与正则表达式
一、grep命令格式及常用选项 命令格式:grep [options] "pattern" Files [options]参数 --color 匹配到的字符用高亮颜色显示出来 -v 反向选取匹配到的内容 -o 只显示被模式匹配到的内容 -r 搜索多个文件时,以递归搜索 -i 不区分字符大小写 -A n 显示匹配到的行时,且显示其后面的n行 -B n 显示匹配到的行时,且显示其前面的n行 -C n 显示匹配到的行时,且显示其前面和后面的n行 -E 使用扩展的正则表达式,等同于"egrep"命令 pattern:匹配查找文件内容的模式 二、正则表达式(分为基本正则表达式与扩展正则表达式) 2.1 基本正则表达式(工作在贪婪模式,尽可能长的匹配符合模式的内容) 2.1.1 元字符: .: 匹配任意单个字符;用法格式“a.c” ^: 锚定行首符合条件的内容;用法格式”^pattern” $: 锚定行尾符合条件的内容;用法格式”pattern$” *: 匹配紧挨在其前面的字符任意次;用法格式”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要与前面的字符相同; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |