gpt4 book ai didi

Java进程执行 "tail -f test.log | grep abc"无法得到任何输出

转载 作者:太空宇宙 更新时间:2023-11-04 03:36:47 24 4
gpt4 key购买 nike

我写了一个java程序来执行linux命令。但我发现它无法从命令“tail -f test.log | grep abc”获得任何输出

下面是几个例子:

"tail -n 100 test.log | grep abc" -- works
"tail -f test.log" -- works
"tail -f test.log | grep abc" -- not works

我的Java代码

String[] cmd = new String[] {"/bin/sh", "-c", "tail -f /Users/Alexis/Test/test.log | grep abc"};
InputStream inputStream = Runtime.getRuntime().exec(cmd).getInputStream();
byte[] bb = new byte[8];
int i = 0;
while ((i = inputStream.read(bb)) != -1) {
System.out.println("received : " + new String(bb, Charsets.UTF_8));
}

当我将某些内容回显到 test.log 中时,我无法获得任何输出。

最佳答案

最后我使用'tail -f test.log | unbuffer -p grep abc' 并且它有效

此外,您还可以使用 'tail -f test.log | stdbuf -o0 grep abc'

关于Java进程执行 "tail -f test.log | grep abc"无法得到任何输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31314842/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com