实践:
1)
使用dos2unix命令:dos2unix filename
Linux下去掉^M的四种方法_linux shell_脚本之家 https://www.jb51.net/article/142224.htm
第一种方法:
cat -A filename
就可以看到windows下的断元字符 ^M
要去除他,最简单用下面的命令:
dos2unix filename
第二种方法:
第三种方法:
第四种方法:
Linux下删除^M文件的方法 - 简书 https://www.jianshu.com/p/d039ab756181
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) |
此外,也可以使用sed把win文档转化为Linux下文档:find . -type f print0 | xargs -0 sed -i 's/^M$//'
其中实践中试验了第一种方法,举例说明该命令的含义:
将文件中的 a 全部替换为b,可以使用:%s/a/b/g
参考:
去掉Linux中删除^M符号的方法
vim如何去掉^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) |
此外,也可以使用sed把win文档转化为Linux下文档:find . -type f print0 | xargs -0 sed -i 's/^M$//'
其中实践中试验了第一种方法,举例说明该命令的含义:
将文件中的 a 全部替换为b,可以使用:%s/a/b/g
参考:
去掉Linux中删除^M符号的方法
vim如何去掉^M字符
作者:fwei
链接:https://www.jianshu.com/p/d039ab756181
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
第一种方法:
cat -A filename
就可以看到windows下的断元字符 ^M
要去除他,最简单用下面的命令:
dos2unix filename
第二种方法:
第三种方法:
第四种方法: