win 与 Linux 的文件转换

基于 DOS/Windows 的文本文件在每一行末尾有一个 CR(回车)和 LF(换行),而 UNIX 文本只有一个换行,即 win 每行结尾为 \r\n,而 linux 只有一个 \n ,如果 win 下的文档上传到 linux,每行的结尾都会出现一个M,(M是ctrl+v,ctrl+m) 如果是单个文档的话,可以用 vi 打开,执行 :%s/^M//g 来去掉 ^M,但如里批量去除的话就不能用 vi 了。

方法1: 用dos2unix命令

dos2unix			# win 转 linux
find ./ -type f -print0 | xargs -0 dos2unix

unix2dos			# linux 转 win
find ./ -type f -print0 | xargs -0 unix2dos

方法2:用sed命令

# win 转 linux
find ./ -type f print0 | xargs -0 sed -i 's/^M$//'

# linux 转 win
fild ./ -type f print0 | xargs -0 sed -i 's/$/^M/'

转载:https://www.zhihu.com/question/22130727/answer/33814375

posted @ 2020-12-30 22:16  亘古一顺  阅读(43)  评论(0)    收藏  举报