基于 DOS/Windows 的文本文件在每一行末尾有一个 CR(回车)和 LF(换行),而 UNIX 文本只有一个换行,即win每行结尾为\r\n,而linux只有一个\n
如果win下的文档上传到linux,每行的结尾都会出现一个^M,(^M是ctrl+v,ctrl+m) 。
下面是去掉^M常用的方法:
方法1:如果是单个文档的话,可以用vim打开,执行 :%s/^M//g 或者 :1,$s/^M//g 来去掉^M,但如里批量去除的话就不能用vim了。
注意:^M是使用 “CTRL-V CTRL-M” 而不是字面上的 ^M
方法2: 用dos2unix工具
把win文档转换成linux下文档:
find ./ -type f -print0 | xargs -0 dos2unix
把linux下的文档转换成win文档:
find ./ -type f -print0 | xargs -0 unix2dos
方法3: 用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/'