java - Linux 使用 java 合并文件的命令不起作用

标签 java linux

我正在尝试使用 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/

相关文章:

java - 是否有正当理由在 java 中将错误的 boolean 值编码为 "Boolean.FALSE"?

java - 反弦、余弦和正切代码

java - 如何从 JFrame 中删除 JPanel?

linux - ubuntu10.4设置环境变量

使用 argp 库完全隐藏选项

java - 将 .war 文件部署到 tomcat 8 在 IDE 中工作正常但是当我部署到我的 VPS 时我丢失了所有的 JS 和 CSS

java - 将值应用于对象时出错

linux - 为 for 循环设置 IFS 然后在 for 循环内取消设置是否安全?

linux - SubDomain.DOMAIN.COM 在浏览器地址栏中保持原样 - .htaccess/mod_rewrite

linux - 如何观察和报告特定目录中的文件创建?