9.1 正则介绍_grep上
正则就是一串有规律的字符串
掌握好正则对于编写shell脚本有很大帮助
各种编程语言都有正则,原理都是一样的
grep/egrep, egrep是grep的扩展,能完成所有gred的功能
gred [-cvniABC] 'word' filename
#which grep
grep是自带颜色选项的
# grep 'nologin' passwd
-c:行数
-n:行号
-i:不区分大小写
-v: 取反
-r:遍历所有子目录
#grep -r 'root' /etc
只截图其中一部分
-A后面跟数字,过滤出符合要求的行以及下面的n行
#grep -A3 'nologin' passwd
-B后面跟数字,过滤出符合要求的行及上面的n行
# grep -nB3 'nologin' passwd
9.2 grep中
# grep '[0-9]' passwd //过滤出含有0-9的行
# grep -v '[0-9]' passwd //过滤出不含0-9的行
# grep -n '[^0-9]' inittab //过滤出不含0-9的,只要不含数字都过滤出来 //^在方括号内,表示非
9.3 grep下
# grep 'r.o' passwd //'.'’表示任意的一个字符
#grep 'o*t' passwd //过滤出在t前面有任意个o的 //o*表示含有0个或多个o
# grep 'mail.*nologin' passwd //.*表示任意个任意字符
#grep 'o\{2\}' passwd //过滤出含有2个o(连续的)的行 //{}需要用脱义字符才可以
或者加-E选项来不使用脱义符号
#egrep 'o{2}' passwd //egrep可以不用脱义字符
# grep -E '(oo){2}' passwd //oo重复2次
#egrep 'o+t' passwd //过滤出t前面有1个或多个o的行 //o+表示1个或多个o
# egrep 'o?t' passwd //过滤出t前面含有0个或1个o的行 //o?表示0个或1个o
# egrep 'root|nologin' passwd //过滤出含有root或nologin的行 // |表示或