Welcome 微信登录

首页 / 操作系统 / Linux / 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.htmLinux Windows MAC操作系统中换行符差异 http://www.linuxidc.com/Linux/2012-11/74725.htmWindows和Linux中任意字符串替换成换行符的问题 http://www.linuxidc.com/Linux/2008-09/15348.htmLinux内核知识学习笔记mdev的使用以及arm Linux 如何自动检测并自动mount SD卡相关资讯      Linux换行符 
  • Linux/Unix下去除windows下换行符^  (01/13/2013 16:39:33)
本文评论 查看全部评论 (0)
表情: 姓名: 字数