r3f.cn
GitHub Repo stars

Grep 命令

本速查表旨在快速回顾使用命令行程序 grep 所涉及的主要概念,并假定您已经了解其用法。

#入门

#用法

搜索标准输出(即文本流)

$ grep [选项] 搜索字符串

在文件中搜索精确字符串:

$ grep [选项] 搜索字符串 文件路径

打印 myfile.txt 文件中包含字符串 "mellon" 的行

$ grep 'mellon' myfile.txt

文件名中接受通配符。

#选项示例

选项 示例 操作
-i grep -i ^DA demo.txt 忽略大小写
-w grep -w "of" demo.txt 仅搜索完整单词
-A grep -A 3 'Exception' error.log 显示匹配字符串后的 3 行
-B grep -B 4 'Exception' error.log 显示匹配字符串前的 4 行
-C grep -C 5 'Exception' error.log 显示匹配字符串周围的 5 行
-r grep -r 'r3f.cn' /var/log/nginx/ 递归搜索(包括子目录)
-v grep -v 'warning' /var/log/syslog 返回所有不匹配模式的行
-e grep -e '^al' filename 使用正则表达式(以 'al' 开头的行)
-E grep -E 'ja(s|cks)on' filename 扩展正则表达式(包含 jason 或 jackson 的行)
-c grep -c 'error' /var/log/syslog 计算匹配项的数量
-l grep -l 'robot' /var/log/* 打印匹配项所在的文件名
-o grep -o 搜索字符串 文件名 仅显示字符串的匹配部分
-n grep -n "go" demo.txt 显示匹配项的行号

#Grep 正则表达式

#参考

对于更复杂的需求,请参考正则表达式速查表的完整版本。

#通配符

- -
. 任意字符。
? 可选,且只能出现一次。
* 可选,且可以出现多次。
+ 必需,且可以出现多次。

#量词

- -
{n} 前一项恰好出现 n 次。
{n,} 前一项出现 n 次或更多次。
{,m} 前一项最多出现 m 次。
{n,m} 前一项出现 n 到 m 次之间。

#POSIX

- -
[:alpha:] 任何大小写字母。
[:digit:] 任何数字。
[:alnum:] 任何大小写字母或数字。
[:space:] 任何空白字符。

#字符

- -
[A-Z­a-z] 任何大小写字母。
[0-9] 任何数字。
[0-9­A-Z­a-z] 任何大小写字母或数字。

#位置

^ 行首。
$ 行尾。
^$ 空行。
\< 单词开头。
\> 单词结尾。