grep 命令 及正则表达式总结
grep 命令 及正则表达式总结 grep: 英文:Glob Regular Expresstion Printing (全局搜索正则表达式打印) 功能:给定选取条件,只显示符合或者不符合条件的行。 通常需要结合正则表达式(RE)来完成匹配。 RE:分为两种: Basic RE; Extened RE 语法: grep [option] ...'PATTERN' FILE ... 选项: --color=auto;给符合条件的关键字附上颜色。 -v:反向选择,只显示不符合条件的行。 -o:only-match,只显示被匹配的字符串,不显示行。 -i:ignore-case,不区分大小写。 -A:after,不仅显示匹配到的行,而且还要显示后面#行;例如:-A2 表示后两行。 -B:before,不仅显示匹配到的行,而且还要显示前面#行;例如:-B2表示前两行。 -C:context,不仅显示匹配到的行,而且还要显示前面#行,后面#行,例如:-C2表示把前后2行都显示 -E:extend,grep -E = egrep 扩展正则表达式。 例子: 1.grep 查看ip地址 #ifconfig eth0|grep "inet addr"|cut -d: -f2|cut -d' ' -f1 基本正则表达式元字符: 字符匹配: ^:行首锚定,用法"^pattern". $:行尾锚定,用法"pattern$". "^$":表示空白行. .:匹配单个任意字符;例如a.c: 可以是abc acc;不可以:abbc []:匹配指定范围内的任意单个字符;例如[a-z]: 可以是a,b,c;不可以:ab,123 [^]:匹配不再范围内的任意单个字符;例如[^a-z];可以是A,N,不可以:a,b; 次数匹配:(工作在贪婪模式) *:表示匹配前一个字符出现o次或1次或者多次;例如ab*c; 可以是:abc,ac,abbbbc 不可以:abdc, ab*:可以表示a,abbbbbb,a *b:a b,ab,a b,a pa b; ?:表示匹配前一个字符出现0次或1次; 例如:ab?c: abc,不可以是: abbc,adc {m,n}:匹配前一个字符至少出现m次 最多出现n次; {0,n}:表示前一个字符最多出现n次; {m}: 表示精确m次; 例子: ab{3}: abbbc 指定b出现3次; ab{0,2}:a,abb b最少出现0次最多2次; ab{3,}:abbb,abbbbb,abbbbbb 指定b最少出现3次; ab{3}:abbb 指定b出现3次。 单词锚定: &;:锚定词首,用法&;pattern,例如:&;br表示以br开头的单词。 &;:锚定词尾,用法pattern&;例如:ing&;表示以ing结尾的单词。 &;pattern>:精确锚定单词,用法&;pattern&;例如:&;love&;表示锚定love单词。 分组锚定: ():分组锚定,用法:(pattern) 例如: (ab){1,2}:表示以ab为一组匹配至少1次,最多2次; (ab).*1:表示ab后面跟任意字符然后再跟ab,等同于ab.*ab 后面的1表示引用前面的第一个分组ab,如果是2表示引用前面第二个分组等等以此类推。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |