一、背景
由于windows和linux对换行的标识不一样,不同系统的代码传递导致代码格式的改变中可能会带来程序无法正常编译通过的问题。因此根据一些编译的错误提示,可以定位到是文件格式的问题,要对程序的文本文件进行转换。
二、解决方法
windows标识一行的结束用的是回车换行符,即‘\r\n‘,也叫做CRLF。linux对一行结束的标识则只有换行,即‘\n‘,也就是LF。将程序从windows下copy至linux下时,只需要使用如下命令对所有的文件进行格式转换即可(参考[1])。
find . -type f -exec dos2unix {} \;
三、查看文件类型的方法
3.1windows下使用notepad++的话,可以设置显示所有字符(参考[2]),notepad++右下角会显示文件类型。
3.2linux下使用vim(参考[3])
使用vim打开文件,输入:set ff?。根据返回结果可以文件类型
3.3linux下使用gedit
使用gedit打开文件,搜索‘\r\n‘,看每行末尾是否存在。存在则通常是dos类型,不存在则是unix类型。
四、参考文献
[1]linux - dos2Unix command on entire directory - Stack Overflow
[2]3.10. Notepad++支持显示回车符,换行符,TAB键,行首,行尾等特殊字符
[3]File format - Vim Tips Wiki
时间: 2024-10-02 19:51:22