grep 能做什么
grep 全称为 Global search Regular Expression and Print out the line
,全局正则表达式搜索及输出。grep 会在文本文件中进行指定搜索,并可将结果输出出来。
grep 命令选项
grep 通过相应的选项可以满足很多需求。
-i: 搜索时忽略大小写
-n: 显示结果所在的行号
-r: 递归搜索目录下的文件
-c: 统计匹配到的行数,匹配到的总行数而不是次数
-l: 只输出匹配到字符串的文件名
-o: 只显示匹配到的关键词,不显示该完整行,每个符合条件的字符串单独一行
-w: 精确匹配某关键词,字符串中包含该关键词不作匹配
-B[num]:显示匹配行前指定行数的内容
-A[num]:显示匹配行后指定行数的内容
-C[num]: 显示匹配行上下指定行数的内容
-e: 多词匹配,逻辑或
-q: 静默模式,不输出任何信息,可以通过 `echo $?` 查看匹配结果,0 表示匹配成功
-P: 兼容使用 perl 的正则引擎
-E: 扩展正则表达式,相当于使用了 `egrep`
高亮显示
--color=auto
或者指定环境变量 export GREP_OPTIONS='--color=auto' GREP_COLOR='100;8'
或 OR
grep 'pattern1\|pattern2' filename
grep -E 'pattern1|pattern2' filename
egrep 'pattern1|pattern2' filename
grep -e pattern1 -e pattern2 filename
与 AND
grep 没有 AND 操作,但可以模拟一下。
grep -E 'pattern1.*pattern2' filename // 按照指定顺序包含
grep -E 'pattern1.*pattern2|pattern2.*pattern1' filename // 同时包含即可
grep -E 'pattern1' filename | grep -E 'pattern2'
非 NOT
grep -v 'pattern' filename