\n 、\r\n 换行还是回车换行
本文参考自: http://www.yulongjun.com/linux/20170518-08-lf-cr/
我们打开Visual Studio Code编辑器,可以看到右下角有这个LF,这是VS Code的默认行尾序列的符号:
点开后,我们可以到,有两种模式可选,LF,CRLF:
为什么是这样呢,这两种模式有什么区别呢?
在Linux下,默认换行的话,是LF模式,见下图两个红框部分:
Linux下创建的LinuxFIle文件,用Linux的编辑器在里面写了三行文本。然后我用Python显示出转义符,可以看到是\n,这里的\n就是指的是换行符(LF)
然后我们在Windows下用记事本,写一个文件WindowsFile.txt,然后上转到Linux上去同样的方法查看。可以看到是\r\n,\r指的就是回车(CR),\r\n连起来就是回车换行(CRLF)
也就是说:在Linux里编辑文件,一行结束后跟的是\n;在Windows里用自带的记事本编辑文件,一行结束后跟的是\r\n
tips:在Windows下有很多编辑器,是默认支持LF的方式,如Visual Studio Code、Sublime Text、Notepadd++,而且默认的编码格式是UTF-8,所以,大家在Windows下写Linux脚本,或打开Linux下的文件,可以用上面的编辑器,而不要用Windows自带的记事本。
CR和LF是缩写,其实他们的全称分别是:Carriage-Return和Line-Feed。追本溯源的说,CR(Carriage-Return)和LF(Line-Feed)这两个词来源于打字机的发明和使用。
打字机的纸张向下卷动一行,就是换行(LF, Line-Feed)
将打印头从最右边归位到最左边,就是回车(CR, Carriage-Return)
如果把一个Windows记事本建立的文档,放到Linux里用的话,要用dos2unix来转换一下后,再使用。当然最好的方法还是用专门的编辑器,不要用记事本。