我正在处理一个批处理脚本,该批处理脚本根据我的输入生成部署外壳脚本,并且发现生成的外壳脚本具有EOL \r\n
,因此我需要添加一个过程来将该文件转换为使用{ {1}}。我一直在寻找本机批处理的解决方案,但失败了,所以现在我正尝试以其他方法来实现。
输入内容是典型的命令外壳程序脚本,其中\n
为EOL。
输出应为与EOL相同的shell脚本,并带有\r\n
。
任何可以在Windows环境中完成的方法将不胜感激。
答案 0 :(得分:0)
nodejs方法:
\n
通过const fs = require('fs');
fs.readFile('apply_patchx.sh','utf8',(err,data)=>{
fs.writeFile('apply_patch.sh',data.replace(/\r?\n/g,"\n"),()=>{
console.log('converted');
});
});
进行调用,将输入嵌入脚本中。
Java方法:
node rn2n.js
通过import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class RN2N {
public static void main(String[] args){
try {
BufferedReader br = new BufferedReader(new FileReader("apply_patchx.sh"));
BufferedWriter bw = new BufferedWriter(new FileWriter("apply_patch.sh"));
for(String line; (line = br.readLine()) != null;){
bw.write(line.replaceAll("\\\\r\\\\\n", "\\\\n"));
}
br.close();
bw.flush();
bw.close();
System.out.println("converted");
} catch (IOException e) {
System.exit(1);
}
}
}
进行调用,将输入嵌入脚本中。