grep 过滤空行和注释行

grep   Global search Regular Expression and Print out the line

使用"正则表达式"进行"全局搜索"

选项

-i  忽略大小写

-n  显示行号

–color   高亮关键字,centos7默认已经高亮

-c  统计符合条件的行数

-o  只打印关键字,每个被匹配的关键字单独显示一行

-B   同时显示之前的行,后面必须有数字,如 -B2

-A   同时显示之后的行

-w  只匹配独立单词,也就是精确匹配

-v  反向查找

-e  同时匹配多个目标

-q  静默模式,只关心有没有匹配到,不关心内容

-E  可以使用扩展正则,,相当于egrep

-P  使用兼容perl的正则

-I  列出文件名称。

-r  递归

-I 忽略二进制文件(默认情况下grep不会忽略二进制文件)
grep 过滤空行和注释行_第1张图片

fgrep: 不支持正则表达式,只能匹配写死的字符串,但是速度奇快,效率高,fastgrep

例子

1、 过滤空行和注释行

grep -Ev "^$|[#;]" server.conf

2、 匹配文件中所有单词,并打印出来

grep -E -o "\b[[:alpha:]]+\b" server.conf

#[[:alpha:]]表示字母
#[[:alpha:]]+表示多个字母
#\b表示边界,其前后必须是不同类型的字符
#\b[[:alpha:]]+\b合起来表示一个单词

3、列出目录下包含关键字的文件

grep -lr "mysql"  /etc/

4、列出目录下包含关键字的文件,并显示文件中包含关键字的行

grep -Ir "mysql"  /etc/

你可能感兴趣的:(linux)