linux系统之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
9: