grep 命令 及正则表达式总结

前端之家收集整理的这篇文章主要介绍了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表示引用前面第二个分组等等以此类推。

猜你在找的正则表达式相关文章