【问题标题】:Executing awk command in java在java中执行awk命令
【发布时间】:2017-05-31 14:12:15
【问题描述】:

我正在尝试在 java 中为 linux/unix os 执行 awk 命令,但问题是当我执行命令时它没有显示任何错误。但是执行后没有输出,执行 i 需要几分之一秒不知道问题请帮忙。

代码是

process p =new process():
yes = "awk '{print $1}' /root/Desktop/net/net.zone >> /root/Desktop/net/net.txt";
p = Runtime.getRuntime().exec(yes);

感谢您的帮助

【问题讨论】:

    标签: java unix awk


    【解决方案1】:

    使用 Java 正确启动命令行进程并不容易。我建议你使用commons-exec 而不是自己尝试。

    现在命令行中有两件事需要特殊处理:

    • 在 AWK 脚本周围加上单引号。当您通过addArgument 将每个参数作为单独的字符串传递给CommandLine 时,您就不再需要引号了。

    • 输出重定向。

      由于您创建了子进程,因此您可以控制 stdin 和 stout。这意味着您需要在 Java 中打开要追加的目标文件,将其包装在 PumpStreamHandler 中并将其传递给 DefaultExecutor。详情见这个问题:Process output from apache-commons exec

    【讨论】:

    • 先生,我是java新手,不懂你在说什么,请详细说明
    • 请查看我链接的文档并完成示例。如果您不知道如何将库添加到您的项目中,您的 IDE 文档应该对此进行说明。
    • @vigneshkalai 因为您是 Java 新手,我建议您在 Java 论坛中询问如何做您想做的任何事情。调用 awk 很有可能不是正确的方法。
    • 感谢兄弟,我使用 unix 命令创建了一个 shell 脚本并运行它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-01
    • 2018-01-16
    • 1970-01-01
    • 1970-01-01
    • 2017-01-26
    • 2017-01-17
    • 1970-01-01
    相关资源
    最近更新 更多