首页 > 解决方案 > 自动 EOL 转换片段?

问题描述

我正在编写一个根据我的输入生成部署 shell 脚本的批处理脚本,我发现我生成的 shell 脚本有 EOL \r\n,所以我需要添加一个过程来将此文件转换为使用\n. 我一直在寻找本机批处理的解决方案但失败了,所以现在我正在尝试用其他方法来做。

输入是带有\r\nEOL 的典型 shell 脚本命令。

输出应该是与\nEOL 相同的 shell 脚本。

任何可以在 Windows 环境中完成的方法都将不胜感激。

标签: eol

解决方案


nodejs方法:

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');
    });
});

通过调用node rn2n.js,嵌入在脚本中的输入。

Java方法:

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);
        }
    }
}

通过调用java RN2N,嵌入在脚本中的输入。


推荐阅读