我尝试了下面的代码,但它不起作用。然而,如果我尝试捕获文件,它将工作并打印文件的整个内容。
但我尝试使用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);
}
答案 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]);
}
}