grep和egrep的基础知识

前端之家收集整理的这篇文章主要介绍了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用户信息。

wKiom1MIbm_haHYmAAFLBqzO2JQ457.bmp

-i 找出用户名为“myqq”的用户信息 用户名不区分大小写。

wKiom1MIczDCX2xdAAGt1g32BY8741.bmp

-E 显示ifconfig命令结果的1-255间的整数。

wKioL1MIb_ThJsGFAASJ1q373sU745.bmp

-A 找出用户user49后面三个用户的信息。

wKiom1MHV6byoVV0AAP-7igcKZQ702.bmp



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\)x\1 :aabxaab、a1bxa1b。


扩展正则表达式 egrep grep -E

字符匹配和位置锚定与基本正则表达式相同;

次数匹配

*:匹配其前面的字符任意次;

? : 匹配其前面的字符01次;

+: 匹配其前面的字符至少1

{m}: 匹配其前面的字符m次;

{m,n}: 至少m次,至多n次 作用与基本表达式中\{m,n\}相同;

{m,}: 至少m次;

{0,n}:至多n次。

分组()和|

如 l(ik|ov)er 匹配liker或lover。

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