把Java管道给Grep:为什么不工作?

时间:2010-02-25 13:07:22

标签: java bash grep pipe

我试图在Bash中运行这个可怕的简单命令

java -cp nasa-top-secret.jar gov.nasa.RocketToMoon | grep -v codehaus

但grep不起作用(它不会过滤掉我的字符串)。如何使用java过滤我的grep输出?

2 个答案:

答案 0 :(得分:19)

输出可以在STDERR上,请改为尝试:

java -cp nasa-top-secret.jar gov.nasa.RocketToMoon 2>&1 | grep -v codehaus

答案 1 :(得分:3)

可能的情况

  1. 你实际上拥有所有的线条 “codehaus”,所以grep -v给你 没有。我假设你知道-v 代表。
  2. 你的java程序没有打印 stdout的任何东西。检查你的 来源,并确保您的程序吐出到stdout。否则,检查你的程序是否正在吐出的stderr。
  3. 可能的故障排除步骤:

    1. 删除管道到grep,只运行java程序并make 确定你的程序有输出。
    2. 2>&1放在命令的末尾 并尝试使用grep