红联Linux门户
Linux帮助

新手求问关于windows和linux下文本文件差异的问题

发布时间:2011-05-11 23:04:56来源:红联作者:变换之风1986
发现在windows下创建编辑出来的.txt文件(里面均为英文)在linux下用cat -A命令看时 会在文档末尾发现^M的标识 请问这是什么符号呢 怎样才能把^M消除呢?
文章评论

共有 4 条评论

  1. yanyongkg 于 2011-05-13 09:42:43发表:

    sed -i 's/^M//g' dosfile ( ^M用ctrl+v ctrl+m输入,直接shift+6 M输入的是普通含义的字符^m)

  2. wangyu 于 2011-05-12 18:52:01发表:

    他辞了。
    deepV5。直接用gedit,没注意过

  3. deepwhite 于 2011-05-12 09:00:21发表:

    不是编码差异,是不同换行符造成的。
    Windows 下的换行符是 \r\n,
    linux 下是 \n
    MacOS 下是 \r

    这样, windows 下编辑的文件拿到 linux 下看的时候,在换行符之前,就出现了这个 ^M.

    消除的方法:
    1 . 通过工具转换:比如 dos2unix, 形如: dos2unix file.txt
    2. 通过 编辑器 (VIM/Emacs) 进行全局替换。
    VIM: 通过命令 %s/^M//g 来完成。(^M 通过 Ctrl+M 来输入)
    Emacs通过 replace-string 来替换 ^M (^M 通过 Ctrl+Q Ctrl+M 来输入)

  4. 变换之风1986 于 2011-05-11 23:05:34发表:

    难道是编码差异的问题吗?