目录
一.什么是Linux 和 Windows 的换行符 CRLF 和 LF
二.使用Linux 中命令 dos2unix 和 unix2dos 实现CRLF 和LF的转换
三.使用 windows 中的代码编辑器实现 CRLF 和 LF 的转换(Notepad++)
一.什么是Linux 和 Windows 的换行符 CRLF 和 LF
CR是Carriage-Reruen(回车)的缩写
LF是Line-Feed(换行)的缩写
Linux(Unix)和 mac 默认使用的是"/n”作为换行符,对应 ACSI表中的LF,值为10(0x0a)
Windows 默认使用的是"\r\n","\r"对应 ACSI表中的CR,值为13(0x0d),"\r"在vim 中被解释为”^M”。
简单来说,就是Linux 回车符号为LF,DOS的换行符为CRLF,也就是多了一个M符号出来。
Linux 中使用了Windows 中的换行符,文件无法正常运行,会报如下错误:
/bin/bashM: bad interpreter: No such file or directory.
二.使用Linux 中命令 dos2unix 和 unix2dos 实现CRLF 和LF的转换
dos2unix -k -n file newfile
unix2dos -k -n file newfile
-k:不更新文件上次内容经过自定义的时间
-n:保留原本的旧文件
dos2unix test.sh test.sh
could not open/dev/kbd to get keyboard type US keyboard assumed.could not get keyboard type US keyboard assumed.
在SunSolairs中运行转换命令报错:
1.可以忽略,依然会生成新文件;
2.使用-437参数(useUScodepage)dos2unix-437 test.sh test_new.sh
三.使用 windows 中的代码编辑器实现 CRLF 和 LF 的转换(Notepad++)
在notepad++中,右下角可以看到当前文件的编码格式,可以右键进行修改。
同时我们可以在notepad++上面的导航栏中设置所有字符的显示,这时候就可以在行未显示出LF和CR了,便于观察具体的编码格式。