2017-03-09 105 views
0

只是關於grep命令行的一個基本問題。我找到怎樣的方式瞭解使用此命令行的服務在運行過程:Linux中的多個grep命令

ps -ef |grep -v grep | grep mongodb 

我感到困惑的第二grep的:

|grep -v grep | 

爲什麼我需要使用「 grep「在」-v「之後?

該命令與該命令有什麼不同?

ps -ef |grep mongodb 

謝謝!

回答

1

當你grep "mongodb「通過命令行,命令還包含單詞‘MongoDB的。’所以你會得到兩個結果,這是有缺陷的結果。grep -v是去除grep命令由用戶輸入。

sh-4.1$ ps -ef |grep -v grep | grep mongodb 
ps 17308 30074 0 06:05 pts/300 00:00:00 sh mongodb 

VS

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. 
+0

ahh,輸入的用戶命令也在處理中。非常感謝 –

0

-v選項的grep告知不要讓任何通過匹配模式,在包含字符串的「grep」這種情況下線條。 所以,如果你omitt的grep -v grep 你的grep進程本身也會顯示在管道中的第二個命令之後的輸出中(也是在第三個之後,因爲grep進程本身包含單詞「mongodb」)。