grep 指令

grep 指令

grep global search regular expression(RE) and print out the line

Linux grep 命令用于查找文件里符合条件的字符串,如果发现某文件的内容符合所指定的正则模板(grep 默认使用的是 POSIX BRE 字符集),预设 grep 指令会把匹配正则模板的那一列显示出来(注意,在 grep 中,不需要整行都匹配上,只需要有部分匹配上就算匹配上)。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据。 PATTERN 部分如果有 POSIX 元字符,一定要带上引号,这一点至关重要(这样可以阻止 shell 试图展开它们),如果只是普通文本,可以不带引号。

关于 shell 展开通配符,请看《Bash 的模式拓展》

grep [options] [-e PATTERN | -f FILE] [FILE...]

另外,也可以使用两个变种程序 egrepfgrepegrepgrep -E 相同。fgrep 与 grep -F 相同。在 alias 中可以看到:

find 是根据文件信息(文件名,文件类型,权限,修改时间等)来查询文件。grep 则是查找文件内容

参数解析:

常用配置: -C -c -e -E -f -G -F -i -l -n -r -v -x

简单实践:

find / -type f -name "*.log" | xargs grep "ERROR":从根目录开始查找所有扩展名为 .log 的文本文件,并找出包含 "ERROR" 的行

find xargs grep 三个命令经常相互配合使用

grep -nr 111 ./ 在当前目录下查找 111