0

这个表达式应该做什么?

grep -i Keyword1 | grep -i Keyword2 file.txt

是否应该返回包含关键字 1 或关键字 2 的行?我问这个是因为这不是我得到的。我总是以某种方式得到关键字 2 的行,而且事情似乎没有完成。我的意思是当你运行一个正常的命令时,它在完成后返回到命令提示符。似乎没有当我运行上述内容时会发生这种情况。这里是否发生了某种管道?

4

2 回答 2

3

这真的没有意义。|是一个管道,它重定向 stdin/stdout:将 s stdouta | b重定向abs stdin。grep,没有文件作为参数,将从标准输入获取输入,这就是您的命令不返回的原因。

你想要的是

grep -i Keyword1 file.txt | grep -i Keyword2

哪个将 grep for Keyword1,输出将被 grep for Keyword2。这将产生一个合乎逻辑and的过滤器Keyword1 AND Keyword2

于 2012-10-11T01:44:06.117 回答
1

如果你想要逻辑或,你可以使用grep -Ei '(Keyword1|Keyword2)' file.txt

你目前拥有的是奇怪和错误的。这就是你打算做的:

grep -i Keyword1 file.txt | grep -i Keyword2

这会给你逻辑和。

于 2012-10-11T01:42:53.607 回答