[转]Linux下删除^M文件的方法

Unix系统里,每行结尾只有“<换行>”,即“\n”;Windows系统里面,每行结尾是“<换行><回车>”,即“\n\r”;Mac系统里,每行结尾是“<回车>”。

1. 问题描述:

在windows下写的文件上传到Linux服务器之后,文件中多出了很多^M符号

2. 原因分析:

Linux和windows的文本中,对换行方式处理不同:

'\n' 10 换行(newline)
'\r' 13 回车(return
系统 换行方式
Windows 结尾是<换行><回车>,即“\n\r”
linux/unix 结尾是<换行>,即 “\n”
Mac系统 结尾是<回车>,即“\r”

所以windows下的文件,在Linux中会有^M,即回车符号

3.解决办法:

解决办法主要以下几个方案:
注意: ^M要用Ctrl+v,<回车>代替

命令1. vim 中使用替换命令::%s/^M//g

     2. 使用sed:sed 's/^M//' filename > newfile

3. 使用tr删除“\r”:tr -d "\r" filename

4. 使用dos2unix命令:dos2unix filename

     5. 在vim下::set ff = unix(把dos文件类型变为unix)

From:https://www.jianshu.com/p/d039ab756181

[转]Linux下删除^M文件的方法
0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
Scroll to top
0
Would love your thoughts, please comment.x
()
x