9.1 正则介绍_grep上

grep用来过滤指定关键词的

选项-c作用过滤出来的行一共有多少行

-c看有多少行如下

-n显示行号如下

** i不区分大小写如下**

-v取反的意思

-r一些子目录或者孙目录所有下面的文件全部遍历一遍

上图把所有etc下的root都会列出来

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

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

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

9.2 grep中

grep '[0-9]' 表示数字0到9如下

grep -v '[0-9]'表示没有数字的行如下

grep -n '[^#]' 表示以#号开头的行如下

grep -nv '[^#]' 表示不以#号开头的行

grep '[^0-9]' 表示除数字外其余都符合标准如下

grep -v '^[^0-9]' 表示除数字开头行其余都不符合标准。如果不加-v就表示除数字开头行其余都符合标准 如下

总结:^这个符号以什么开头,如果把^放到中括号[^]里面去是中括号里边的字符反义取反。和把他放到外面是不一样的是以什么开头

9.3 grep下

特殊符号点.表示任意的一个字符

{}表示范围示例如下

上图用到了拖意符号不想用拖意就就用egrep示例如下

-E根egrep意思一样:grep -E  'o{2}' passwd

+号示例如下

?号示例如下

|线表示或者 如下

扩展

把一个目录下,过滤所有*.php文档中含有eval的行

grep -r --include="*.php" 'eval' /data/