grep永远不会返回任何东西,除非我放*或。最后 - 为什么?

时间:2013-07-31 21:12:41

标签: linux grep

如果我放*或。在grep命令结束时,我会立即得到结果。但是,如果我不这样做,命令永远不会返回任何内容。

如果有人可以告诉我原因,或者将我指向包含该信息的来源,我会很感激!在线查看所有内容,所有内容都涉及在搜索中搜索句号或星号。大多数示例都不包含*或。,而那些不会告诉我他们实际在做什么。

谢谢!

2 个答案:

答案 0 :(得分:4)

如果没有要搜索的文件列表,grep默认会读取stdin。 e.g。

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

顺便说一下,grep更有用的堂兄,ack,做你期望的。 :)

答案 1 :(得分:0)

grep的最后一个参数是搜索的位置 - 当你说*表示应该搜索当前目录中的所有内容时,当你说dot时你也指出当前目录。如果你把它们关掉,那么grep假定你要传递文本来通过管道进行搜索,所以它正在等待文本到达(即你输入文本)