加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

grep 命令 及正则表达式总结

发布时间:2020-12-14 02:06:27 所属栏目:百科 来源:网络整理
导读:grep 命令 及正则表达式总结 grep: 英文:Glob Regular Expresstion Printing (全局搜索正则表达式打印) 功能:给定选取条件,只显示符合或者不符合条件的行。 通常需要结合正则表达式(RE)来完成匹配。 RE:分为两种: Basic RE; Extened RE 语法: 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表示引用前面第二个分组等等以此类推。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读