将 Java 管道传输到 Grep:为什么不工作?

发布于 2024-08-22 18:02:06 字数 209 浏览 7 评论 0原文

我试图在 Bash 中运行这个极其简单的命令

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

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

I am trying to run this dreadfully simple command in Bash

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

but grep is not working (it does not filter out my string). How can I filter my java output using grep?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

囚我心虐我身 2024-08-29 18:02:06

输出可能在 STDERR 上,请尝试以下操作:

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

The output could be on STDERR, Try this instead:

java -cp nasa-top-secret.jar gov.nasa.RocketToMoon 2>&1 | grep -v codehaus
掌心的温暖 2024-08-29 18:02:06

可能的情况是

  1. 你实际上拥有所有的线路
    “codehaus”,所以 grep -v 给你
    没有什么。我假设你知道什么是 -v
    代表。
  2. 你的java程序没有打印
    任何标准输出。检查你的
    源并确保您的程序将其输出到标准输出。否则,检查您的程序是否吐出其 stderr。

可能的故障排除步骤:

  1. 删除 grep 的管道,仅运行 java 程序并进行 make
    确保你的程序有输出。
  2. 2>&1 放在命令末尾
    然后用 grep 重试

possible scenario

  1. you actually have all the lines with
    "codehaus", so grep -v gives you
    nothing. I assume you know what -v
    stands for.
  2. your java program did not print
    anything to stdout. check your
    source and make sure your program spits out to stdout. Otherwise, check if its stderr that your program is spitting out.

possible troubleshooting step:

  1. remove the pipe to grep, run only the java program and make
    sure your program has output.
  2. put 2>&1 at the end of the command
    and try again with grep
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文