这篇文章上次修改于 412 天前,可能其部分内容已经发生变化,如有疑问可询问作者。

使用场景

  • 对文本内容或数据流进行过滤,筛选

语法

  • grep [参数] pattern [files]
  • pattern 是要查找的字符串或正则表达式
  • files 是要查找的文件名,可以同时查找多个文件,如果省略 files 参数,则默认从标准输入中读取数据

参数说明

参数 说明
-A NUM, --after-context=NUM 显示匹配行及后面的 NUM 行内容
-B NUM, --before-context=NUM 显示匹配行及前面的 NUM 行内容
-C NUM, --context=NUM 显示匹配行及前后各 NUM 行内容
-a, --text 处理二进制文件,将其视为文本文件
-b, --byte-offset 在每行的前面显示匹配项的字节偏移
-c, --count 只输出匹配行的数量,而不显示具体内容
-e PATTERN, --regexp=PATTERN 指定匹配模式为正则表达式
-E, --extended-regexp 使用扩展正则表达式语法
-F, --fixed-strings 将模式视为固定字符串而不是正则表达式
-G, --basic-regexp 使用基本正则表达式语法
-h, --no-filename 不显示文件名
-H, --with-filename 显示文件名
-i, --ignore-case 忽略大小写匹配
-l, --files-with-matches 只显示包含匹配项的文件名
-L, --files-without-match 只显示不包含匹配项的文件名
-m NUM, --max-count=NUM 限制输出的匹配行数为 NUM 行
-n, --line-number 显示匹配行及行号
-o, --only-matching 只输出匹配的部分
-q, --quiet, --silent 安静模式,不输出任何信息
-r, --recursive 递归搜索子目录
-s, --no-messages 安静模式,不显示错误信息
-U, --binary 处理二进制文件,将其视为文本文件
-v, --invert-match 反向匹配,显示不匹配的行
-w, --word-regexp 匹配整个单词,而不是部分匹配
-x, --line-regexp 限制整行匹配
--binary-files=TYPE 指定处理二进制文件的方式,如 binary, text, without-match
--color[=WHEN] 匹配项高亮显示,可选的颜色参数
--exclude=FILE_PATTERN 排除指定文件模式
--exclude-dir=DIR_PATTERN 排除指定目录模式
--label=LABEL 在输出中使用 LABEL 替代文件名
--line-buffered 行缓冲输出
--null 输出以 null 分隔的文件名和匹配项
--perl-regexp 使用 Perl 兼容的正则表达式语法
--regexp=PATTERN 指定匹配模式为正则表达式
--version 显示版本信息
--help 显示帮助信息

使用grep获取文件中的ip


[root@AY140330180959236303Z www]# cat ip.log oooooo 192.168.1.2 mmm 192.168.1.3 ddd 192.168.1.4 bbbb 192.168.1.5 aaaaa [root@AY140330180959236303Z www]# grep '^\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}$' ./ip.log 192.168.1.2 192.168.1.3 192.168.1.4 192.168.1.5 [root@AY140330180959236303Z www]#