yanyongkg 于 2011-05-13 09:42:43发表:
sed -i 's/^M//g' dosfile ( ^M用ctrl+v ctrl+m输入,直接shift+6 M输入的是普通含义的字符^m)
wangyu 于 2011-05-12 18:52:01发表:
他辞了。 deepV5。直接用gedit,没注意过
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 来输入)
变换之风1986 于 2011-05-11 23:05:34发表:
难道是编码差异的问题吗?
yanyongkg 于 2011-05-13 09:42:43发表:
sed -i 's/^M//g' dosfile ( ^M用ctrl+v ctrl+m输入,直接shift+6 M输入的是普通含义的字符^m)
wangyu 于 2011-05-12 18:52:01发表:
他辞了。
deepV5。直接用gedit,没注意过
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 来输入)
变换之风1986 于 2011-05-11 23:05:34发表:
难道是编码差异的问题吗?