grep的用法与正则表达式
在上一篇介绍完通配符后,这一篇来介绍正则表达式,正则表达式在linux日常维护中若能善用,可以大大提高我们的工作效率,但在我看来也是比较回收难懂的,在写这篇博客之前,我正在加班,面对一天的疲惫,再对着这些天书般的符号,此时只能用“头大”来形容我内心无比丰富的情感,好吧,先介绍grep的用法。 grep默认支持基本正则表达式,可以通过参数-E支持扩展正则表达式,另外grep单独提供了一个扩展命令叫做egrep用来支持扩展正则表达式,相当于grep -E。虽然一般情况下,基本正则表达式就够用了。特殊情况下,复杂的扩展表达式,可以简化字符串的匹配。 grep的选项: -v: 反向选取,只显示不符合模式的行; -o: 只显示被模式匹配到的字串,而不是整个行; -i: 不区分字符大小写; -A n:显示匹配到的行时,顺带显示其后面的n个行; -A 2 -B n:前面的n行; -C n:前后的n行; -E: 使用扩展的正则表达式 grep -E = egrep 好了,介绍完grep的用法,我们正式来介绍正则表达式: .:匹配任意单个字符。 匹配r和t之间有任意两个字符,可以匹配root,roat,rrrt,但是不匹配rt。 *:匹配紧挨在其前面的字符0次或者多次。 例如:grep 'ro*t' grep.txt。匹配rt,rot,root 等等. .*::表示任意字符。 ^:锚定行首, 例如 查找以hello单词开头的行 $:锚定行尾 例如rd$ 表示搜寻以rd结尾的行 []:匹配一系列字符中的一个。 例如:查找带h或者H字母的单词 [^]:匹配字符集以外的字符。例如:排除 h或者H的字母。 [n1-n2] 匹配一个范围中的一个字符。 例如:查找带数字的行 {m,n} :前面的字符至少重复m次,至多n次 例如:查找ab出现至少1次,至多出现两次的行。 {m,}表示至少匹配m次 {m} 表示精确匹配m次 &; 例如:匹配以h开头的单词 &; 匹配单词结尾 例如:匹配以rd结尾的单词 ():分组引用;1:表示第一组括号中的内容;2:表示第二组括号中的内容;依次类推。例如: grep--color=auto '^(ab).*1'相当于 grep--color=auto '^(ab).*(ab)' (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |