9.1 正则介绍_grep上 9.2 grep中 9.3 grep下

9.1 正则介绍_grep上/ 9.2 grep中/ 9.3 grep下

正则就是一串有规律的字符串shell

•掌握好正则对于编写shell脚本有很大帮助编程

•各类编程语言中都有正则,原理是同样的编程语言

•本章将要学习grep/egrep、sed、awk学习

grep [-cinvABC] 'word' filenameci

-c 统计匹配的行数字符串

-w 匹配一个单词,更精准 // grep -w 'root' /etc/passwd 只会匹配精准符合root的行, 如文件里是rooto 这种则不会匹配it

-i 不区分大小写test

-n 显示行号awk

-v 取反原理

-r 针对目录操做, 查找目录和子目录中符合条件的文件(遍历目录) grep -r /etc/

-A 后面跟数字,过滤出符合要求的行以及下面n行

-B 同上,过滤出符合要求的行以及上面n行

-C 同上,同时过滤出符合要求的行以及上下各n行

-P 非贪婪模式 ,例: str="123abc0axc456" echo $str | grep -P 'a.?c' echo aaabbbaaabbbbcccbbbb |grep -P 'a.?b'

grep/egrep示例

grep -n 'root' /etc/passwd

grep -nv 'nologin' /etc/passwd

grep '[0-9]' /etc/inittab 符合0-9任意一个数字

grep -v '[0-9]' /etc/inittab

grep -v '^#' /etc/inittab ^# 符合以#号开头

grep -v '^#' /etc/inittab|grep -v '^$' 不以#号开头的行 ^$ 空行

grep '^[^a-zA-Z]' test.txt 非a-zA-Z 开头的行(匹配以数字开头的行)

grep 'r.o' test.txt .表示1个任意字符

grep 'oo*' test.txt *号左边的字符匹配0次到屡次

grep '.' test.txt ’.’ 全部字符都会匹配

grep 'o{2}' /etc/passwd o出现2次

egrep 'o{2}' /etc/passwd o出现2次

egrep 'o{0,3}' /etc/passwd o{0,3}’ o出现 0-3次范围

egrep 'o+' /etc/passwd +号前面字符1次或多

egrep 'oo?' /etc/passwd ?前面字符出现0或1次

egrep 'root|nologin' /etc/passwd 竖线 或者的意思

egrep '(oo){2}' /etc/passwd ()表明1个总体, oo出现2次

如下匹配序用grep -E 或者 erep 可不用脱意符号

‘o{2}’ o出现2次

‘o{0,3}’ o出现 0-3次范围

‘(oo){2}’ ()表明1个总体, oo出现2次

‘o+’ +号前面字符1次或多

‘oo?’ ?前面字符出现0或1次

‘root|nologin’ 竖线 或者的意思

相关文章
相关标签/搜索