Ming_key
2016-10-18 12:26 阅读 2.4k

java 执行linux sed 命令不起作用

  • 执行命令:gzip -d /data1/ftp_data/fms_alarmdata-cz_shuju_20160917.csv.gz(可以执行)

  • 执行命令:sed -i '1d' /data1/ftp_data/fms_alarmdata-cz_shuju_20160917.csv(木作用,单独copy出来起作用)

  • 执行命令:sed -i 's/!/-/g' /data1/ftp_data/fms_alarmdata-cz_shuju_20160917.csv(木作用,单独copy出来起作用)

  • 执行命令:sed -i 's/|^%/|/g' /data1/ftp_data/fms_alarmdata-cz_shuju_20160917.csv(木作用,单独copy出来起作用)

  • 执行命令:sed -i 's/^/2016|09|17|20160917|&/g' /data1/ftp_data/fms_alarmdata-cz_shuju_20160917.csv(木作用,单独copy出来起作用)

    执行方法:
    // 执行linux命令方法
    private boolean excuteLiuxOrde3r(String command) {
    logger.info("执行命令:" + command);
    boolean returnFlag = false;
    StringBuilder sb = new StringBuilder();
    Process process= null;
    try {
    process = Runtime.getRuntime().exec(command);
    returnFlag = true;
    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
    String lo;
    while ((lo = bufferedReader.readLine()) != null) {
    sb.append(lo);
    sb.append("\n");
    }
    process.waitFor();
    logger.info("执行命令结果:" + sb.toString());
    // 等待n秒后destory进程
    }catch (Exception e){
    e.printStackTrace();
    }
    process.destroy();
    return returnFlag;
    }

    麻烦各位协助一下,谢谢
    
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

1条回答 默认 最新

  • oyljerry oyljerry 2016-10-18 14:30

    你java中的执行环境跟命令行中直接运行可能有区别,比如转义符。修饰符等

    点赞 评论 复制链接分享

相关推荐