在Linux下使用vi来查看一些Windows下创建的文本文件时,有时会发现在每一行尾部有^M字符,是因为在Windows下换行使用CRLF两个字符来表示,其中CR为回车(ASCII=0x0D),LF为换行(ASCII=0x0A),而在Linux下使用LF一个字符来表示。
一、dos2unix和unix2dos
Dos2unix软件包包括工具"dos2unix" 和 "unix2dos",用于将纯文本文件在DOS或Mac格式与Unix格式之间相互转换。
二、tr命令
使用tr命令拷贝标准输入到标准输出,替换或者删除掉选择的字符,只能把DOS转换为UNIX文件,命令如下:
1 |
tr -d ‘\r’< dosfile.txt > unixfile.txt |
三、vim
vim是一个vi的改进版本,可以运行在Windows和Linux平台上,使用方法如下:
1 2 3 4 5 |
vim dosfile.txt DOS转UNIX:set fileformat=unix UNIX转DOS:set fileformat=dos :wq |
如果你需要把Unix文本文件转换为DOS文本文件,输入:set fileformat=dos,你也可以使用ff来替代fileformat,此时可以输入:set ff=dos。你可以输入:help fileformat来获得跟多的关于选项信息。
注:为了能让vim可以自动识别DOS和UNIX文本文件格式,可以在.vimrc(Linux)或_vimrc(Windows)配置文件中加入如下一行设置:
1 |
set fileformats=dos,unix |
设置完成后,使用vim打开DOS文本文件就不会显示^M字符了。

我的微信
扫一扫加我微信