2013-07-31 34 views
3

如果我把一個*或。在grep命令的末尾,我會立即得到結果。但是,如果我不這樣做,該命令永遠不會返回任何內容。grep永遠不會返回任何東西,除非我把*或。到底 - 爲什麼?

如果有人能告訴我爲什麼,或者將我引導到包含該信息的來源,我將不勝感激!在網上查找所有內容,所有內容都會討論在搜索中搜索一段時間或星號。大多數例子不包括*或者,而那些不會告訴我他們實際在做什麼的例子。

謝謝!

+2

您可以發佈信息一個確切的命令行,顯示問題? – tuckermi

+0

您的終端上的'man grep' – CBIII

+0

是的,我做過。其他答案解釋說,它實際上是在等待輸入/管道,這在我的手冊頁中並不清楚。 – epch

回答

4

沒有要搜索的文件列表,grep默認讀取stdin。例如

$ grep -o a.. 
This appears to freeze, but is actually just waiting for input 
app 
ars 
act 
all 
ait 
^D 

順便說一句,grep的更有用的表弟,ack,做你所期望的。 :)

+0

謝謝!我以爲它被卡住了。 – epch

0

grep的最後一個參數是在哪裏搜索 - 當你說*你指示應該搜索當前目錄中的所有內容時,當你說點時,你也指出當前目錄。如果將這些關閉,那麼grep會假定您要通過管道傳遞文本以進行搜索,因此它正在等待文本到達(即供您輸入)

+0

謝謝!我沒有意識到它正在等待輸入。 – epch

相關問題