首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux中的多个grep命令

Linux中的多个grep命令
EN

Stack Overflow用户
提问于 2017-03-09 19:02:31
回答 2查看 294关注 0票数 1

只有一个关于grep命令行的基本问题。通过使用以下命令行,我找到了如何知道服务正在运行的方法:

代码语言:javascript
复制
ps -ef |grep -v grep | grep mongodb

我对第二个grep感到困惑:

代码语言:javascript
复制
|grep -v grep |

为什么我需要在“-v”之后使用"grep“?

这个命令和这个命令有什么不同?

代码语言:javascript
复制
ps -ef |grep mongodb

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-09 19:03:14

当你通过命令行grep "mongodb“时,你的命令也包含了"mongodb”这个词,所以你会得到两个结果,这是有缺陷的结果。grep -v是删除用户输入的grep命令。

代码语言:javascript
复制
sh-4.1$ ps -ef |grep -v grep | grep mongodb
ps   17308 30074  0 06:05 pts/300  00:00:00 sh mongodb

vs

代码语言:javascript
复制
sh-4.1$ ps -ef |grep mongodb
ps   17308 30074  0 06:05 pts/300  00:00:00 sh mongodb
ps   17456 30074  0 06:05 pts/300  00:00:00 grep mongodb  #<<<This also contains mongodb word. Hence result is flawed. 
票数 2
EN

Stack Overflow用户

发布于 2017-03-09 19:06:18

-v选项告诉grep不要让任何与模式匹配的内容通过,在本例中是包含字符串"grep“的行。因此,如果省略了grep -v grep,grep进程本身也会显示在输出中管道中第二个命令之后(以及第三个命令之后,因为grep进程本身包含单词"mongodb")。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42693627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档