如何将awk的输出读入java应用程序

如何将awk的输出读入java应用程序,java,awk,Java,Awk,我试图将awk的输出读取到java应用程序中,而我知道我可以从输出文件中读取它(将awk写入该文件,然后从该文件中读取),这不是我想要做的。我想知道的是:有没有一种方法可以将我的awk输出直接读取到我的java中(去掉中间人),如果有,哪种api/awk命令最适合它 由于重复的思想,另一个问题涉及命令行。我的问题是,我正在使用一台windows机器,与linux联网,执行一个awk,并希望获取awk响应。我在试着弄清楚1。这在不使用输出文件的情况下是可能的 2.如果可能,awk的正确输出是什么,

我试图将awk的输出读取到java应用程序中,而我知道我可以从输出文件中读取它(将awk写入该文件,然后从该文件中读取),这不是我想要做的。我想知道的是:有没有一种方法可以将我的awk输出直接读取到我的java中(去掉中间人),如果有,哪种api/awk命令最适合它

由于重复的思想,另一个问题涉及命令行。我的问题是,我正在使用一台windows机器,与linux联网,执行一个awk,并希望获取awk响应。我在试着弄清楚1。这在不使用输出文件的情况下是可能的
2.如果可能,awk的正确输出是什么,是否打印?或者我会使用通用的shell echo吗?这两个都没有显示在另一页上。三,。java中哪种api最适合执行awk、JSch?

您必须使用远程执行工具。使用
exec
通道是众所周知的

一般的方法是:

  • 准备
    awk
    命令-使用完整路径,不要依赖 环境
  • 通过
    Jsch
    exec
    通道执行命令并发送 通过tearrayoutputstream将通道输出到
  • 读取中的
    awk
    输出
    ByteArrayOutputStream的基础字符串

  • 或者,您可以尝试使用
    管道
    ,但我认为没有必要。

    通过终端(|)的管道可能会重复工作吗?正如vandale所说。。。“awk…| java…”怎么样?让java程序从其标准输入通道(System.in?)读取它。您还可以使用
    ProcessBuilder
    和read
    Process
    OutputStream@ErstwhileIII有点,但不完全是,我正在做的是,我需要远程到linux服务器,在csv文件上运行awk,将该输出从linux中拉回来,并在我的windows计算机上进行处理。:/我知道我想如何使用我的awk,但是我是否使用awk的通用打印功能并使用ProcessBuilder阅读它?还是有更好的办法?我是awk的新手,不知道如何获得它。最坏的情况是,我将把它写入一个文件,然后将文件scp到我的机器上并从那里读取。