Ubuntu22.04之去除文件结尾的^M符号(二百五十三)
简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!
优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀
优质专栏:多媒体系统工程师系列【原创干货持续更新中……】🚀
优质视频课程:AAOS车载系统+AOSP14系统攻城狮入门实战课【原创干货持续更新中……】🚀
人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.
🍉🍉🍉文章目录🍉🍉🍉
- 🌻1.前言
- 🌻2.^M符号介绍
- 🌻3.解决方案
- 🐓3.1 显示^M符号
- 🐓3.2 去处windows系统的:^M的符号.
🌻1.前言
本篇目的:Ubuntu22.04之去除^M符号
🌻2.^M符号介绍
- 在Ubuntu和其他基于Unix-like系统的操作系统中,
^M
符号通常表示文件的行结束符是CRLF(即回车符CR和换行符LF的组合),这是Windows系统中的标准行结束符。相比之下,Unix-like系统使用LF(换行符)作为行结束符。 ^M
符号的出现通常是因为文件在不同类型的操作系统中编辑或传输时,行结束符发生了变化。例如,当你在Windows上编辑一个文件并保存时,文本编辑器通常会添加CRLF作为行结束符。如果你将这个文件移动到Ubuntu系统上,^M
符号就会出现在每行的末尾,因为Unix-like系统的文本工具预期的是LF而不是CRLF。- 在Ubuntu中使用
meld
等比较工具时,^M
符号的出现通常是因为你在比较两个文件,其中一个文件使用了CRLF作为行结束符,而另一个文件使用了LF。meld
会显示这些差异,^M
符号就是用来表示额外的回车符CR。 - 在Ubuntu中,
^M
符号也可能在以下情况下出现:
- 文件传输:当你从Windows系统复制文件到Ubuntu系统,或者通过邮件附件等方式发送文件时,文件的行结束符可能会被保留为CRLF。在Ubuntu系统中打开这些文件时,你可能会看到
^M
符号。 - 版本控制:在使用Git等版本控制系统时,如果配置不当,可能会在Ubuntu系统上检出包含CRLF的文件。这通常可以通过配置Git来避免,例如设置
core.autocrlf
为input
,这样Git会在检出时转换为LF,而在提交时转换为CRLF。 - 文本编辑器:一些文本编辑器,如
gvim
或sublime text
,可以在Ubuntu上设置为使用Windows风格的行结束符。如果你在这样的编辑器中打开或编辑文件,可能会看到^M
符号。 - 脚本和程序:在编写或运行脚本时,如果你在Windows上编写并在Ubuntu上运行,或者反之,行结束符的差异可能会导致脚本无法正确执行。这是因为Unix-like系统的shell预期脚本的行结束符是LF,而不是CRLF。
- 为了处理
^M
符号,Ubuntu提供了一些工具,如dos2unix
和unix2dos
,这些工具可以用来转换文件的行结束符。例如,使用dos2unix
可以将CRLF转换为LF,从而删除^M
符号。 - 总的来说,
^M
符号在Ubuntu中出现是因为文件在不同操作系统中编辑和传输时,行结束符的标准不同。了解这一点有助于在跨平台环境中正确处理和比较文件。
🌻3.解决方案
🐓3.1 显示^M符号
# cat -A test.txt
- 如果是windows编码格式,可以看到每行结尾:^M的符号。
🐓3.2 去处windows系统的:^M的符号.
- 第一种方式:
# dos2unix test.txt
- 第二种方式:
# vim test.txt
在命令模式下:输入:%s/^M//g 然后,回车即可替换
- 第三种方式:
sed -i 's/^M//' test.txt