gpt4 book ai didi

java - 在 java 中使用 linux grep 命令时出错

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

我正在尝试使用进程生成器在 Java 中获取 grep linux shell 命令的输出。但我在这种情况下陷入困境。请帮我。谢谢指教!

    String[] args = new String[7];
args[0] = "/bin/bash";
args[1] = "-c";
args[2] = "grep";
args[3] = "-n";
args[4] = "-e";
args[5] = "KERNELVERSION";
args[6] = kernelFilePath.trim();

ProcessBuilder pb;
Process process = null;
try {
pb = new ProcessBuilder(args);
pb = pb.directory(new File(directory));
pb.inheritIO();
pb.redirectOutput(ProcessBuilder.Redirect.INHERIT);
pb.redirectError(ProcessBuilder.Redirect.INHERIT);
process = pb.start();
process.waitFor();
} catch (IOException | InterruptedException e) {
System.out.println("executeCmdWithOutput() exception : " + e.toString());
} finally {
if (process != null) {
process.destroy();
}
}

==> 错误:

Usage: grep [OPTION]... PATTERN [FILE]...

Try 'grep --help' for more information.

我在 bash 中尝试了这个命令,它运行良好:

grep -n -e KERNELVERSION ..../Makefile

最佳答案

您是否尝试过将 args[2] 更改为完整命令?

此外,您可以使用 pgrep,它不需要您使用管道。

关于java - 在 java 中使用 linux grep 命令时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47200188/

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