linux grep 的用法

165 阅读2分钟

grep语法格式

grep [-abcEFGhHilLnqrsvVwxy][-A<显示行数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]

grep [OPTIONS] PATTERN [FILE...]

常见选项

–color=auto 对匹配到的文本着色显示

-m # 匹配#次后停止

-v 显示不被pattern匹配到的行

-i 忽略字符大小写

-n 显示匹配的行号

-c 统计匹配的行数

-o 仅显示匹配到的字符串

-q 静默模式,不输出任何信息

-A # after, 后#行

-B # before, 前#行

-C # context, 前后各#行

-e 实现多个选项间的逻辑or关系,如:grep –e ‘cat ’ -e ‘dog’ file

-w 匹配整个单词

-E 使用ERE,相当于egrep

-F 不支持正则表达式,相当于fgrep

-f file 根据模式文件处理

-r 递归目录,但不处理软链接

-R 递归目录,但处理软链接

-l 打印包含匹配项的文件名,而不是文本行本身,也可用--files-with-matches 选项来指定

-L 相似于-l 选项,但是只是打印不包含匹配项的文件名。也可用--files-without-match 来指定。

-h 应用于多文件搜索,不输出文件名。也可用--no-filename 选项来指定。

grep实例

反向匹配, 查找不包含xxx的内容

#反向匹配, 查找不包含xxx的内容

grep -v xxx

排除所有空行

# 排除所有空行

grep -v '^$'

查询以xxx开头的行

# 查询以abc开头的行

grep -n "^abc" 111.txt 

同时列出该词语出现在文章的第几行

# 同时列出该词语出现在文章的第几行

grep 'xxx' -n xxx.log

计算一下字串出现的次数

# 计算一下该字串出现的次数

grep 'xxx' -c xxx.log

grep 多关键字搜索

匹配多个关键字(且)同一行同时满足两个条件

管道符连接 多个条件 实现关键字 且关系 匹配:

grep "xxx" xxx.log |grep "yyy"

同一行同时满足两个条件(xxxyyy)才能够匹配。

grep -E 匹配多个关键字(或)

grep -E "xxx|yyy" xxx.log

匹配文件中 同一行包含 xxx、yyy 之一