我可以在java中使用awk吗?

时间:2017-01-24 08:51:17

标签: java awk

我尝试了下面的代码,但它不起作用。然而,如果我尝试捕获文件,它将工作并打印文件的整个内容。

但我尝试使用awk的原因是我不需要整个内容,我只需要每行的某些部分。

Runtime r = Runtime.getRuntime();
Process p = r.exec("awk -F\":\" '/in/ {print $3}' file.awk"); 
p.waitFor();
BufferedReader in=new BufferedReader(new InputStreamReader(p.getInputStream()));
System.out.println("esto es una \"prueba\"");
String valor = "";
while ((valor = in.readLine())!= null){
    System.out.println(valor);
}

2 个答案:

答案 0 :(得分:1)

jawk

是awk的java实现。 请点击此链接查看概述:http://jawk.sourceforge.net/

答案 1 :(得分:1)

为什么要为一个如此微不足道的问题运行awk?如果该行包含字符串“in”,则将其拆分为“:”并返回第三个字段:

BufferedReader reader = new BufferedReader(new FileReader(filename));
while(String line = reader.readLine()) {
    if (line.indexOf("in") >= 0) {
        String[] fields = line.split(":");
        System.out.println(fields[2]);
    }
}