这几天写代码用source insight新建源文件,代码提交上去用git查看提交,发现满屏的/r .这个坑走了很多次,每个一段时间就忘记。只好转换格式。记录一下:
1.显示所有字符
2.转换为unix格式
下面是网上查的其他方法:
在Linux下面,一般有三种方式来转换文件:
1.使用dos2unix工具
一般的分发版本中都带有这个小工具(如果没有可以根据下面的连接去下载),使用起来很方便:
$ dos2unix myfile.txt
该命令会去掉行尾的^M。
2.用vi修改文件
- 如果文件是在windows环境下创建并编辑的,文件中所有的换行符都是'\r\n',vi会在打开文件时识别出该文件是dos格式,此时不会显示^M,在命令行模式下输入:set fileformat=unix,然后保存即可。
- 如果文件中的换行符有些是为'\r\n',有些是'\n',在vi显示文件时,为'\r\n'将会显示为^M然后换行。这种情况可以直接用vi的替换功能。
":%s/^M//g" 替换所有的^M
":%s/^M$//g" 替换行尾的^M
":%s/^M/[ctrl-v]+[enter]/g" 将^M替换成回车
":%s/^M/\r/g" 将^M替换成回车
在命令中,^M的输入方式是Ctrl+v,Ctrl+m,是一个字符,不是两个字符。(^I 制表符也是如此。)
替换后,如果去看那些内容,你会发现还没替换掉,但是如果你:x 保存退出后,再次用vi打开就发现他们已经完全被替换掉了。
如果碰到有提示:E486: Pattern not found: ^M,单文件中实际存在^M,比如用"cat -v"或"cat -A"查看时,这种情况应该是因为文本中每行都是'\r\n'结尾,vi自动用dos模式打开,这样就看不到^M,这时候直接用:set fileformat=unix就可以了。
3.用sed命令修改
$ sed -e 's/^M/\n/g' myfile.txt
^M = Ctrl+v,Ctrl+m