我正在尝试使用 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");
}
最佳答案
我认为问题不在于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
关于java - Linux 使用 java 合并文件的命令不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29117194/