当前位置: > Linux命令 >

grep及正则表达式

时间:2015-12-20 01:00来源:linux.it.net.cn 作者:IT

grep:根据模式,搜索文本,并将符合模式的文本显示出来
pattern:文本字符和正则表达式的元字符组合而成的匹配条件。
单引号:强引用
1
<br>



双引号:弱引用
-i :忽略大小写
1
<br>



--color:匹配到结果加颜色
alias grep='grep --color'
-v :显示没有被模式匹配到的行
-o: 只显示模式匹配到的字符串
-E:使用扩展正则表达式
-A n:显示匹配到的行及行后面的n行
-B n:显示匹配到的行及行前面的n行

-C n:显示匹配到的行及行前后面的n行

*:任意长度的任意字符
?:任意单个字符
正则表达式:REGular EXPreesion, REGEXP

元字符:
. :匹配任意单个字符
[] :匹配指定范围内的任意单个字符
[^]:匹配指定范围外的任意单个字符
[:digit:], [:lower:], [:upper:],[:space:]

匹配次数(贪婪模式):
*:匹配其前面的字符任意次
   a , b,ab,aab,  acb, adb, amnb
a*b  : b,  ab,  aab
a.*b  :  ab ,  aab,  acb ,  adb,  amnb
.*:任意长度任意字符

\?:匹配其前面的字符1次或0次
\{m,n\}:  匹配其前面的字符至少m次,至多n次
  \{0,3\}

位置锚定:
^:锚定首行,此字符后面的任意内容必须出现在行首
$:锚定行尾,此字符后面的任意内容必须出现在行尾
^$ :空白行

\<或\b:其后的任意字符必须作为单词首部出现
\>或\b:其前面的任意字符必须作为单词尾部出现
\<root\> 或 \broot\b:精确匹配

分组:
\(\)
  \(ab\)*  :ab作为整体,出现一次或多次
  1\:引用第一个左括号以及与之对应的右括号中匹配到的内容
  2\:

练习:分析/etc/inittab 文件中如下文本中前两行的特征,请写出可以精确到类似现行的模式。
11:1:wait:/etc/rc.d/rc 1
13: 3:wait:/etc/rc.d/rc 3
grep '^1\([0-9]\):1\.* 1\$' /etc/inittab


扩展正则表达式:

字符匹配:
.
[]
[^]

次数匹配:
*:
?:
+:匹配其前面字符至少1次
{m,n}
位置锚定:
^
$
\<
\>

分组:
():分组
\1,\2,\3,.....

或者:
| :  or
C|cat   :  匹配C或cat
(C|c)at:  匹配Cat或cat


(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容