grep: (global search regular expression(RE) and print out the line)@H_301_15@
是一种文本搜索工具,可根据用户指定的文本模式对目标文件进行逐行搜索,显示能够被模式所匹配到的行。 有则显示, 无则不显示。@H_301_15@
@H_301_15@
@H_301_15@
1 格式:grep [options] “pattern” file...
@H_301_15@
@H_301_15@
1)pattern为字符串参数或调用变量时最好将其用双引号括起来;@H_301_15@
2) pattern为模式匹配时应用单引号括起来。@H_301_15@
@H_301_15@
@H_301_15@
2 常用参数@H_301_15@
-v: 取反,显示不能被模式所匹配到的行;@H_301_15@
-o: 只显示被模式匹配到的字串,而不显示整行;@H_301_15@
-i: 不区分大小写;@H_301_15@
-E: 支持扩展正则表达式,相当于egrep;@H_301_15@
@H_301_15@
-A:参数后跟数字#,显示被匹配到的行和后面#行;@H_301_15@
-B: 参数后跟数字#,显示被匹配到的行和前面#行;@H_301_15@
-C: 参数后面跟数字#,显示被匹配到的行和前后各#行。@H_301_15@
@H_301_15@
例 -v 找出默认shell为非bash的用户信息。@H_301_15@
@H_301_15@
-i 找出用户名为“myqq”的用户信息 用户名不区分大小写。@H_301_15@
@H_301_15@
-E 显示ifconfig命令结果的1-255间的整数。@H_301_15@
@H_301_15@
-A 找出用户user49后面三个用户的信息。@H_301_15@
@H_301_15@
@H_301_15@
@H_301_15@
egrep也是文本一种文本搜索工具, 相当与 grep -E。@H_301_15@
@H_301_15@
grep和egrep命令参数不多,复杂在正则表达式。@H_301_15@
@H_301_15@
基本正则表达式 grep@H_301_15@
字符匹配@H_301_15@
.:匹配单个字符;@H_301_15@
[]: 匹配指定范围内任意单个字符;@H_301_15@
[0-9],[[:digit:]] 匹配一个数字;@H_301_15@
[a-z],[[:lower:]]匹配一个小写字母;@H_301_15@
[A-Z].[[:upper:]]匹配一个大写字母;@H_301_15@
[[:alpha:]]匹配一个字母(大小写);@H_301_15@
[[:alnum:]]匹配一个数字或一个字母;@H_301_15@
[[:space:]]匹配空白字符;@H_301_15@
[^]:指定范围外的任意当字符。@H_301_15@
* : 匹配前面字符任意次;@H_301_15@
\? : 0次或一次;@H_301_15@
\{0,n\}:至多n次 ;@H_301_15@
\{n\} : n次;@H_301_15@
\{m,n\} :m到n次;
@H_301_15@
\{n,\}: 至少n次。@H_301_15@
位置锚定@H_301_15@
^:锚定行首;@H_301_15@
$:锚定行尾;@H_301_15@
\<或\b:锚定词首;@H_301_15@
\>或\b锚定词尾;@H_301_15@
分组 \(\) @H_301_15@
如 :\(ab\)*x 匹配x前面任意个ab组合 :x、abx、ababx……;@H_301_15@
引用 \1 引用前面第一个左括号到与之对应的右括号中所匹配到的内容;@H_301_15@
如: \(a.b\)x\1 :aabxaab、a1bxa1b。@H_301_15@
@H_301_15@
扩展正则表达式 egrep grep -E
@H_301_15@
字符匹配和位置锚定与基本正则表达式相同;@H_301_15@
*:匹配其前面的字符任意次;@H_301_15@
? : 匹配其前面的字符0或1次;@H_301_15@
+: 匹配其前面的字符至少1次@H_301_15@
{m}: 匹配其前面的字符m次;@H_301_15@
{m,n}: 至少m次,至多n次 作用与基本表达式中\{m,n\}相同;
@H_301_15@
{m,}: 至少m次;@H_301_15@
{0,n}:至多n次。
@H_301_15@
分组()和|
@H_301_15@
如 l(ik|ov)er 匹配liker或lover。@H_301_15@ 原文链接:https://www.f2er.com/regex/362061.html