Linux基础之grep和正则表达式(2)

  '|' 表示或,匹配其前或者其后的单词,注意并不是匹配字符,如需匹配字符,需要使用分组进行限定。我这里使用的是扩展正则,如需使用基本正则,需要将 '|' 换为 "\|"。

Linux基础之grep和正则表达式

  3.扩展正则表达式

   grep 同时还支持扩展正则表达式,在使用扩展正则表达式是,需要使用 -E 选项。基础正则表达式和扩展正则表达式中的一些区别:

基础正则中使用 \?,扩展正则中使用 ?

基础正则中使用 \(\),扩展正则中使用 ()

基础正则中使用 \{\},扩展正则中使用 {}

  在基础正则表达式中匹配 ?,(),{} ,不需要进行转移,而在扩展正则表达式中则需要加上转义符号 \。

  扩展正则表达式中的其他选项:

\s:匹配空白字符

\S:匹配非空白字符

\w:匹配字母,数字,相当于 [0-9a-zA-Z]

\W:不匹配字母和数字,相当于 [^0-9a-zA-Z]

  4.grep 的其他选项

grep PATTERN FILE -A NUM:使用 grep 进行匹配之后,显示匹配的行,同时向后显示指定的行

grep PATTERN FILE -B NUM:和上面相反,向后显示指定行

grep PATTERN FILE -C NUM:进行匹配之后,分别向前和向后显示指定的行,相当于 -AB NUM

grep PATTERN FILE -c:显示被匹配到的行数

grep PATTERN FILE -F:相当于 fgrep

grep PATTERN FILE -P:使用 Perl 风格的正则表达式

\d:匹配任意十进制数字,相当于 [0-9]

\D:匹配任意非数字字符,相当于 [^0-9]

  5.egrep 和 fgrep

  在使用 grep 时,如果想要开启扩展正则表达式,需要指定 -E 选项,而 egrep 命令则是默认支持扩展正则表达式。因此在需要使用扩展正则表达式时推荐使用 egrep 代替 grep -E。

  fgrep 表示快速匹配,不支持正则表达式,没有转义的概念,会对 PATTERN 中的所有字符进行匹配。

  6.总结

  本篇我们介绍了 grep 命令和正则表达式的基本使用,grep 是 Linux 下的一个文本处理命令,配合正则表达式使用,其功能非常强大。grep 主要用来查找操作,如果想使用替换等更加强大的功能,就需要使用 sed 或者 awk 命令。grep,sed,awk 被称为 Linux 下的三个文本处理杀器,等学到相应的章节再继续介绍 :)

grep使用简明及正则表达式

正则表达式的用法

正则表达式之零宽断言

Linux命令-文件文本操作grep 

grep正则表达式

Linux中正则表达式与文件格式化处理命令(awk/grep/sed)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/14857.html