myfreax

grep 搜索标准输入与管道

grep命令的全称是全局正则表达式打印,它是Linux中功能最强大且最常用的命令之一

3 min read
By myfreax
grep 搜索标准输入与管道
grep 搜索标准输入与管道

grep命令的全称是全局正则表达式打印,它是Linux中功能最强大且最常用的命令之一。

grep在一个或多个输入文件中搜索与指定模式匹配的行,并将匹配行写入标准输出。如果未指定文件,grep则从标准输入读取内容。

grep命令读取的标准输入通常是另一个命令的输出。在本教程中,我们将通过实际示例向您展示如何使用grep命令并详细说明最常用的GNU grep选项。

grep 命令

在开始使用grep命令之前,让我们先回顾一下grep基本语法。grep命令的语法形式是grep [OPTIONS] PATTERN [FILE...]

OPTIONS可选参数可以零个或多个选项,PATTERN搜索模式可以是字符串,也可以是正则表达式。

FILE零个或多个输入文件名。要能够搜索文件,运行grep命令的用户必须对文件具有读取权限。

grep 搜索标准输入

除了指定搜索文件之外,您还可以将另一个命令的标准输出传递给grep命令通过管道,然后仅打印与指定模式匹配的行。

例如命令ps -ef | grep www-data 使用ps命令列出所有进程然后通过管道传递grep命令搜索www-data用户运行的进程。

如果在搜索结果不多的时候,你很容易就会发现ps -ef | grep www-data命令的标准输出还包含当前grep进程的信息。

如果您不希望打印grep进程的信息,可将标准输出再次通过管道传递到另一个grep实例排除grep进程的输出。例如命令ps -ef | grep www-data | grep -v grep

ps -ef | grep www-data
ps -ef | grep www-data | grep -v grep
www-data 18247 12675  4 16:00 ?        00:00:00 php-fpm: pool www
root     18272 17714  0 16:00 pts/0    00:00:00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn www-data
www-data 31147 12770  0 Oct22 ?        00:05:51 nginx: worker process
www-data 31148 12770  0 Oct22 ?        00:00:00 nginx: cache manager process
Linux grep 命令搜索文件内容 | myfreax
grep命令的全称是全局正则表达式打印,它是Linux中功能最强大且最常用的命令之一

Related Articles