Linux下删除^M文件的方法

实践:

1)

使用dos2unix命令:dos2unix filename

 Linux下去掉^M的四种方法_linux shell_脚本之家 https://www.jb51.net/article/142224.htm

第一种方法:

cat -A filename 就可以看到windows下的断元字符 ^M

要去除他,最简单用下面的命令:

dos2unix filename

第二种方法:

1
2
sed -i ‘s/^M//g' filename
#注意:^M的输入方式是 Ctrl + v ,然后Ctrl + M

第三种方法: 

1
2
3
#vi filename
:1,$ s/^M//g
^M 输入方法: ctrl+V ,ctrl+M

第四种方法:

1
2
#cat filename |tr -d ‘/r' > newfile
#^M 可用 /r 代替

 

 

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

第二种方法:

1
2
sed -i ‘s/^M//g' filename
#注意:^M的输入方式是 Ctrl + v ,然后Ctrl + M

第三种方法: 

1
2
3
#vi filename
:1,$ s/^M//g
^M 输入方法: ctrl+V ,ctrl+M

第四种方法:

1
2
#cat filename |tr -d ‘/r' > newfile
#^M 可用 /r 代替
posted @ 2021-12-16 11:28  papering  阅读(5477)  评论(0编辑  收藏  举报