执行命令: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;
}
麻烦各位协助一下,谢谢
你java中的执行环境跟命令行中直接运行可能有区别,比如转义符。修饰符等