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。

相关文章

jquery.validate使用攻略(表单校验) 目录 jquery.validate...
/\s+/g和/\s/g的区别 正则表达式/\s+/g...
自整理几个jquery.Validate验证正则: 1. 只能输入数字和字母...
this.optional(element)的用法 this.optional(element)是jqu...
jQuery.validate 表单动态验证 实际上jQuery.validate提供了...
自定义验证之这能输入数字(包括小数 负数 ) &lt;script ...