Windows编辑的文件无法在linux中执行
原因:这个问题,和操作系统换行符相关。Dos、Windows格式的文件,用0D 0A(CR+LF)作为换行符,而Linux/Unix的则是以0A(LF)作为换行符,因此以Dos底下的文本文件到了Linux,换行符就会多出来一个0D(CR),他会显示为"^M"。
在Linux中vim是无法显示\r,因为ascii中对应的不是Linux中的标准acsii字符,其实其对应的ASCII码十进制形式是13(无显示形式),对应的八进制形式是15(显示为^M)。
解决办法
1.Windows用文本工具进行转换win-->linux,notepad++、UltraEdit
2. Linux下,可以用
- dos2unix
- cat file | tr -d "\r" > new_file
- sed ‘s/^M//old_file > new_file