JavaScript中是否有类似dos2unix的DOS转UNIX格式转换功能
JavaScript 实现DOS(CR LF)转UNIX(LF)格式的方案
完全可以通过JavaScript实现和dos2unix命令等效的格式转换功能,核心逻辑是对文本中的换行符做正则替换:
基础核心实现
DOS格式的换行符为\r\n(CR LF),UNIX格式的换行符为\n(LF),直接全局替换即可:
function dos2unix(text) { // 全局替换所有CRLF为LF return text.replace(/\r\n/g, '\n'); }
如果需要同时兼容旧Mac系统的\r(单独CR)换行格式,可以扩展为:
function dos2unix(text) { return text.replace(/\r\n/g, '\n').replace(/\r/g, '\n'); }
Node.js 本地文件转换示例
如果是在Node.js环境处理本地文本文件,可以参考以下实现:
const fs = require('fs'); /** * 将指定路径的文本文件转为UNIX换行格式 * @param {string} filePath 文件绝对/相对路径 */ function convertFileDos2Unix(filePath) { const originContent = fs.readFileSync(filePath, 'utf8'); const convertedContent = originContent.replace(/\r\n/g, '\n'); fs.writeFileSync(filePath, convertedContent, 'utf8'); }
注意事项
- 处理GBK等非UTF-8编码的文件时,需要先把文件内容转成UTF-8编码再做替换,避免乱码
- 处理大于100M的大文件时建议使用Node.js的
stream流接口逐块处理,避免一次性加载全量内容占用过高内存 - 如果需要去除文件开头的BOM标记,可以额外添加
.replace(/^\uFEFF/, '')逻辑
内容的提问来源于stack exchange,提问作者user2388677
相关产品推荐
相关产品推荐

