Dos文本文件转Linux格式

Windows系统使用的换行符是\n\r,而Linux使用的换行符是\n。Windows上的文本文件转到Linux行尾会显示成^M,很多程序也不能正确处理,所以我们必须对其转换。

转换换行符其实有很多方法,下面一一介绍:

使用Vim

最开始我使用的vim命令来修改文件的编码,操作是这样的:

vim filename 打开文件

:set fileformat=unix 设置文件格式

:wq 保存文件

sed命令

sed处理这个很容易。

sed -e 's/.$//' fimename > new_filename 这个其实是将每行的最后一个符号,也就是\r符号替换为空, 如果最后一个符号不是\r的话,这样用是有问题的

sed -e 's/\^\M$//g' filename > new_filename 这种方法比上面的更加严谨,他只会将行尾最后一个字符是^M的替换为空

dos2unix命令

不清楚是否是Linux内置命令,用起来比上面更简单

dos2unix filename 直接对源文件格式进行修改


参考文档:

  1. http://blog.sina.com.cn/s/blog_7226f3660100uipz.html
  2. http://zuoye.baidu.com/question/444a3b366ae3f19231fc4f8f26b64e06.html
  3. http://bbs.csdn.net/topics/60120892
  4. http://www.linuxidc.com/Linux/2006-09/193.htm