在Windows环境下编辑的文件,上传到Linux后会在文件中产生^M。尤其是对sh脚本的运行产生影响。原因:CRLF(\r\n)是Windows环境下的行尾结束符,LF(\n)Linux环境下的行尾结束符,在Linux环境下,无法识别Windows环境下文件的行尾结束符引起。
解决办法:
1、首先通过命令查看是否存在^M
cat -A <filename>
2、通过命令行,执行替换
2.1 方法一
sed -i 's/^M$//g' <filename>
在Linux的shell中,^M的输入方法是,按住Ctrl+V+M
2.2 方法二
cat <filename1> | tr -d '\r' > <filename2>
2.2 方法三
此方法依赖环境变量中能够找到如下工具
dos2unix <filename>