感谢支持
我们一直在努力

Linux下的^M,Windows断行符转换

今天项目联调的时候出现配置文件无法正确读取的问题,但是cat配置文件的值都对,纠结了好久最后使用开发板上的vi打开配置文件,发现配置文件每行的结尾多出来好多^M.后来上网查明了原因以及解决方案。

在 Linux 中使用打开曾在 Windows 中编辑过的文件时,会在行尾看到 ^M 字符。这个原因是由于Linux的回车换行是/n  LF ($) 这个断行符号。而Windows下为/r/n 即CR 与 LF 两个符号。 这个^M 即是Windows下转为Linux下多出来的那个/r符号,Linux会将这个/r自动转换为^M. 使用Windows打开Linux下的文本文件即会出现这种情况,使用Windows下的ssh对开发板上的文件进行下载和上传有时也会出现同样的问题

解决方法如下:

在 Vim或Vi下的命令模式中输入 :%s/^M$//g 后,回车即会自动删除该文件中文件结尾的 ^M 字符。

(注意:其中的 ^M 要用 Ctrl + v然后Ctrl + m 来输入而不是单纯的输入^M),M 后面的 $ 代表匹配行尾的内容,最后的 g 则表示每行中匹配到的内容都要置换。

相关阅读:

Linux/Unix下去除windows下换行符^M  http://www.linuxidc.com/Linux/2013-01/77761.htm

Linux Windows MAC操作系统中换行符差异 http://www.linuxidc.com/Linux/2012-11/74725.htm

Windows和Linux中任意字符串替换成换行符的问题 http://www.linuxidc.com/Linux/2008-09/15348.htm

赞(0) 打赏
转载请注明出处:服务器评测 » Linux下的^M,Windows断行符转换
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏