2017-06-26 110 views
0

linux命令有什麼區別ps -ef | grep [W]DAps -ef | grep WDAlinux命令ps -ef |之間的區別是什麼? grep [W] DA和ps -ef | grep WDA?

+0

第一個問題是一個正則表達式,它的第一個元素是一個只包含字符「W」的組。它期望這個組中有一個值,因爲這個組只包含一個元素,所以命令的行爲就像第二個在第一個位置期望字符「W」的行爲一樣。 – Secespitus

+0

Stack Overflow是編程和開發問題的網站。這個問題似乎與題目無關,因爲它不涉及編程或開發。請參閱幫助中心的[我可以詢問哪些主題](http://stackoverflow.com/help/on-topic)。也許[超級用戶](http://superuser.com/)或[Unix&Linux堆棧交換](http://unix.stackexchange.com/)會是一個更好的地方。 – jww

回答

-1

區別在於對於後者,作爲結果之一,您可以在ps的結果中獲得grep WDA。如果添加方括號,則grepps -ef的結果輸出中找不到[W]DA,因爲在其名稱中不存在包含方括號的此類過程。

爲了說明它是如何工作(得到結果更快我用sshd代替WDA我的控制檯上):

ps -ef | grep sshd 
root  1046  1 0 06:36 ?  00:00:00 /usr/sbin/sshd -D 
rogus  2321 1189 0 07:30 pts/0 00:00:00 grep --color=auto sshd 

ps -ef | grep [s]shd 
root  1046  1 0 06:36 ?  00:00:00 /usr/sbin/sshd -D 

方括號的位置是任意的,它不會不管你選擇哪個字符只要它只有一個字符(如果你使用[WD]A然後grep會尋找任何WADA

的主要用途是分析輸出,擺脫不必要的管道的grep。如果你使用它,例如在for循環中,並分析每條包含不同過程實例的數據的行,那麼grep WDA將用於最可能不打算的循環中。

+0

Downvoter - 關心評論? – Rogus

+0

謝謝! 您是否知道[?]如何消除不需要的信息? –