基于 DOS/Windows 的文本文件在每一行末尾有一个 CR(回车)和 LF(换行),而 UNIX 文本只有一个换行,即win每行结尾为\r\n,而linux只有一个\n
如果win下的文档上传到linux,每行的结尾都会出现一个M,(M是ctrl+v,ctrl+m)
如果是单个文档的话,可以用vi打开,删除行尾的^M
:%s/\r//g
但如里批量去除的话就不能用vi了,
方法1: 用dos2unix工具,把win文档转换成linux下文档命令:find ./ -type f -print0 | xargs -0 dos2unix如果想把linux下的文档转换成win下的:find ./ -type f -print0 | xargs -0 unix2dos
方法2: 用sed命令把win文档转换成linux下文档:find ./ -type f print0 | xargs -0 sed -i ‘s/^M / / ′ 把 l i n u x 下 的 文 档 转 换 成 w i n 下 的 f i l d . / − t y p e f p r i n t 0 ∣ x a r g s − 0 s e d − i ′ s / //'把linux下的文档转换成win下的fild ./ -type f print0 | xargs -0 sed -i 's/ //′把linux下的文档转换成win下的fild./−typefprint0∣xargs−0sed−i′s//^M/’