什么是正则?
正则是一窜有规则的字符,掌握好正则对编写shell脚本有很大帮助
正则三剑客-----grep
grep [ -cinvABC] 'word' filename
-c 行数
-i 不区分大小写
-n 显示行号
-v 取反
-r 遍历所有子目录
-A 后面跟数字,过滤出符合要求的行以及下面n行
-B 同上,过滤出复合要求的行以及上面的n行
-C 同上,同时过滤出符合要求的行以及上下各n行
示例:
grep -n 'root' /etc/passwdd //打印出/etc/passwdd文件中有root的行,并显示行号。
grep -nv ‘nologin’ /etc/passwd //打印/etc/passwd文件中出除了含有nologin的所有行,并显示行号
grep '[0-9]' /etc/inittab //显示包含0-9所有的行
grep -v '[0-9]' /etc/inittab //显示出不包含0-9数字的行
grep -v '^#' /etc/inittab //查看除了以#开头的信息
grep -v '^#' /etc/inittab|grep -v '^$' //不显示被注释的行,同事显示含有$的行
grep '^[^a-zA-Z]' test.txt //显示不是以字母开头的行
grep 'r,o' test.txt // 显示文件中r.o的哪一行
grep 'oo*' test.txt //显示文件中oo后+任意一个字符的行
grep '.*' test.txt //显示文件中全部内容
grep 'o{2}' /etc/passwd //精确匹配o两次