linux shell编程之正则表达式

发布时间:2020-04-29编辑:脚本学堂
本文介绍了linux shell编程中正则表达式的用法,在linux shell编程中多结合grep或egrep命令使用正则表达式,有需要的朋友参考下。

有很多朋友对linux shell中的正则表达式用法不是很熟悉,今天脚本小编就为大家介绍下shell正则的用法,一起来看看吧。

shell编程正则表达式:
 

1:元字符   [ ]  .   *  ? + ( )  |  {  }  ^  $
2 : [a-z0-9]  表示匹配任意数字和字母的一个
3 :  [^a-z] 匹配除了字母的任意一个
4 :  ab+c  +表示匹配一个或多个+号前面的字符
5 :   ab*c   *表示匹配没有或多个*号前面的字符
6 :   ab?c  ?表示匹配一个?号前面的字符
7 :   (ab){2}c   表示匹配两个ab字符的字符。
8 :   (ab)*c (ab)+c (ab)?c   同4,5,6的规则相同,只是匹配所有括号里面的字符。
9:^ab   表示匹配以ab开头的字符, 而[^ab]表示匹配除了字符ab的
10:  <title>  只匹配title这个单词,以空格或换行作为分隔符

linux中的 fgrep  grep egrep 命令grep (global research regular expression and printing)
fgrep  命令不使用正则表达式,将所有字符当作普通字符匹配在查找时
grep  命令只支持普通的正则表达式,对扩展的正则不支持(


egrep 命令支持所有的扩展正则表达式。

grep 的几种常见用法:
 

1:  grep -v匹配不包含在正则表达式内的字符  grep -v  '^ab'  /etc/passwd  不以ab开头的字符
2:  grep --color  将匹配的字符用颜色标记出来
3:  grep -o   只显示匹配的字符,在过滤之后。
4:  grep -A2  'abc'  /etc/passwd   显示匹配字符以及匹配字符行的上面两行
5:  grep   -B2  'abc' /etc/passwd显示  匹配字符以及匹配字符行的下面两行
6:  grep  -C3   'abc' /etc/passwd显示  匹配字符以及匹配字符行的下面和上面两行
7:  grep  -f /etc/shadow /etc/passwd  表示根据/etc/shadow文件中的内容匹配/etc/passwd中包含
/etc/shadow中的字符
8:  grep -E  表示支持扩展正则表达式,等同于 egrep