10月16日任务
9.1 正则介绍_grep上
9.2 grep中
9.3 grep下
正则介绍
9.1 _grep(上)
正则是一串有规律的字符串
掌握好正则对于编写shell脚本有很大帮助
各种编程语言中都有正则,原理是一样的
grep/egrep、sed、awk
grep [-cinvABC] 'word' filename
-c 查看行数
-i 不区分大小写
-n 显示行号在最左边
-v 取反 显示除去目标行
-r 遍历文件下所有目录及文件
-A 后面跟数字,过滤出符合要求的行以及下面n行
-B 同上,过滤出符合要求的行以及上面的n行
-C 同上,同时过滤出符合要求的行以及上下面各n行
9.2 grep(中)9.3 grep(下)
grep/egrep示例
grep -n 'root' /etc/passwd
grep -nv 'nologin' /etc/passwd
grep '[0-9]' /etc/inittab
grep -v '[0-9]' /etc/inittab
grep -v '^#' /etc/sos.conf
grep -v '^#' /etc/sos.conf |grep -v '^$'
grep '^[^a-zA-Z]' test.txt
grep 'r.o' test.txt
grep 'oo*' test.txt
grep '.*' test.txt
grep 'o\{2}' /etc/passwd
egrep 'o{2}' /etc/passwd
egrep 'o+' /etc/passwd
egrep 'oo?' /etc/passwd
egrep 'root|nologin' /etc/passwd
egrep '(oo){2}' /etc/passwd
grep
'[0-9]' 只要有一个数字都显示该行
'[^0-9]' 只要含有非数字的字符都显示出该行
-v '[0-9]' 取反 显示没有数字的行
-v '[^0-9]' 显示不以数字开头的行
'^[^0-9]' 显示以一个非数字的字符开头的行
^在中括号中意思为取非
'r.o' 中的.为任意一字符
'o*o' *表示0到n次 *前的字符至少出现0次
'o\{2\}' 显示含有连续两个o的行
'o\{0,3\}' 显示含有连续1个到3个o的行
'o\+o' +表示1到n次 加号前的字符至少出现1次
'o?1o' 表示问号前字符出现的次数为0或1次
'root|nologin' |在单引号中表示或者
grep -E = egrep
egrep 'o{2}' == grep 'o\{2\}' == grep -E 'o{2}'