有很多朋友对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