我正在尝试执行终端命令,使用java程序合并两个.csv文件,我的命令在终端上正常工作但在java中无法正常工作。
以下是我的代码:
String command = "awk 'FNR==1 && NR!=1{next;}{print}' /opt/test/*.csv >> /opt/test/output.csv";
Process proc;
int exitStatus;
while (true) {
try {
proc = Runtime.getRuntime().exec(command);
exitStatus = proc.waitFor();
break;
} catch (java.lang.InterruptedException e) {
System.out.println("inside exception" + e.getMessage());
}
}
if (exitStatus != 0) {
System.out.println("Problem occured");
}
答案 0 :(得分:0)
我认为问题不在java代码中,而是在Linux文件处理中:您将输出定向到一个文件,该文件在创建后立即被视为输入。
尝试此命令:
awk 'FNR==1 && NR!=1{next;}{print}' /opt/test/*.csv >> /opt/test/output.txt ; mv /opt/test/output.txt /opt/test/output.csv