grep和egrep的基础知识
grep: (global search regular expression(RE) and print out the line) 是一种文本搜索工具,可根据用户指定的文本模式对目标文件进行逐行搜索,显示能够被模式所匹配到的行。 有则显示, 无则不显示。
1 格式:grep [options] “pattern” file...
1)pattern为字符串参数或调用变量时最好将其用双引号括起来; 2) pattern为模式匹配时应用单引号括起来。
2 常用参数 -v: 取反,显示不能被模式所匹配到的行; -o: 只显示被模式匹配到的字串,而不显示整行; -i: 不区分大小写; -E: 支持扩展正则表达式,相当于egrep;
-A:参数后跟数字#,显示被匹配到的行和后面#行; -B: 参数后跟数字#,显示被匹配到的行和前面#行; -C: 参数后面跟数字#,显示被匹配到的行和前后各#行。 例 -v 找出默认shell为非bash的用户信息。 -i 找出用户名为“myqq”的用户信息 用户名不区分大小写。 -E 显示ifconfig命令结果的1-255间的整数。 -A 找出用户user49后面三个用户的信息。 egrep也是文本一种文本搜索工具, 相当与 grep -E。 grep和egrep命令参数不多,复杂在正则表达式。 基本正则表达式 grep 字符匹配 .:匹配单个字符; []: 匹配指定范围内任意单个字符; [0-9],[[:digit:]] 匹配一个数字; [a-z],[[:lower:]]匹配一个小写字母; [A-Z].[[:upper:]]匹配一个大写字母; [[:alpha:]]匹配一个字母(大小写); [[:alnum:]]匹配一个数字或一个字母; [[:space:]]匹配空白字符; [[:punct:]]匹配标点符号; [^]:指定范围外的任意当字符。 次数匹配 匹配对象为前面的字符; * : 匹配前面字符任意次; ? : 0次或一次; {0,n}:至多n次 ; {n} : n次; {m,n} :m到n次; {n,}: 至少n次。 位置锚定 ^:锚定行首; $:锚定行尾; &;或b:锚定词首; &;或b锚定词尾; 分组 () 如 :(ab)*x 匹配x前面任意个ab组合 :x、abx、ababx……; 引用 1 引用前面第一个左括号到与之对应的右括号中所匹配到的内容; 如: (a.b)x1 :aabxaab、a1bxa1b。 扩展正则表达式 egrep grep -E 字符匹配和位置锚定与基本正则表达式相同; 次数匹配 *:匹配其前面的字符任意次; ? : 匹配其前面的字符0或1次; +: 匹配其前面的字符至少1次 {m}: 匹配其前面的字符m次; {m,n}: 至少m次,至多n次 作用与基本表达式中{m,n}相同; {m,}: 至少m次; {0,n}:至多n次。 分组()和| 如 l(ik|ov)er 匹配liker或lover。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |