分页: 1 / 2
兄弟们好,请问怎样把一个(从windows里面过来的),后面的^M 给去掉?
发表于 : 2006-09-26 8:37
由 liaojp
兄弟们好,请问怎样把一个程序从windows里面过来的,后面的^M 给去掉?
谢谢
发表于 : 2006-09-26 9:27
由 xiehuoli
看不懂
发表于 : 2006-09-26 10:40
由 dbzhang800
看不懂你说的啥意思,能不能说详细一点
发表于 : 2006-09-26 13:40
由 liaojp
xie谢谢我已经解决了
发表于 : 2006-09-26 13:42
由 tong0711
dos格式到unix格式吧 在linuxforum上有个帖子上有解决方案 脚本 用elisp实现
就是这个
;; convert text files between unix and dos
(defun dos-unix () (interactive)
(goto-char (point-min))
(while (search-forward "\r" nil t) (replace-match "")))
(defun unix-dos () (interactive)
(goto-char (point-min))
(while (search-forward "\n" nil t) (replace-match "\r\n")))
定义了两个命令unix-dos dos-unix
发表于 : 2006-09-26 19:18
由 poet
dos2unix 或者 unix2dos 似乎不一定能很好处理不同的换行方式在不同的行中混排的情形,或者 ^M 悬空的情形。这个问题用 vi 解决其实就很踏实了。
如果只是一个文件,那么在 vi 中打开,然后 :%s/^M//g 就可以了。注意那个^M要用 (C-V,C-M) 的方式输入。
如果是多个文件,我习惯是做一个 shell 脚本实现。
发表于 : 2006-10-23 11:59
由 luddy
查找替换不行吗?
发表于 : 2006-10-23 12:10
由 kliz
luddy 写了:查找替换不行吗?
:%s/^M//g
就是替换
发表于 : 2006-10-25 10:14
由 千里孤坟
楼上的那段表达式不能直接用的,因为这“^M”是控制符,不能用“^”+“M”的方式输入。正确的办法是在终端下按住Ctrl+V,然后再迅速按M(或者Ctrl+V+M一起按),这样输入的“^M”其实是一个字符而不是两个,它会被视作一个有效的控制符。
发表于 : 2006-10-31 20:43
由 jetspeed
在dos下换行符是\r\n 要换成\n 只需要把\r\n的\r去掉就行
发表于 : 2008-07-10 17:10
由 kofshower
千里孤坟 写了:楼上的那段表达式不能直接用的,因为这“^M”是控制符,不能用“^”+“M”的方式输入。正确的办法是在终端下按住Ctrl+V,然后再迅速按M(或者Ctrl+V+M一起按),这样输入的“^M”其实是一个字符而不是两个,它会被视作一个有效的控制符。
记着
发表于 : 2008-07-11 11:15
由 KirovAirShip
我在Solaris里部署OpenCMS,改配置文件(XML)时,也遇到类似问题
我有如下两种解决方案:
一、使用ftp时,用ASCII模式传送文件
二、使用unix2dos&dos2unix实用程序。反正Solaris里有,Ubuntu的命令行我不常用的。
发表于 : 2008-07-11 11:17
由 carbont
kliz 写了:luddy 写了:查找替换不行吗?
:%s/^M//g
就是替换
LZ是要做码表么?
我就是做码表的时候用这个弄的,还去看了好多东西……
发表于 : 2008-07-11 11:20
由 solcomo
千里孤坟 写了:楼上的那段表达式不能直接用的,因为这“^M”是控制符,不能用“^”+“M”的方式输入。正确的办法是在终端下按住Ctrl+V,然后再迅速按M(或者Ctrl+V+M一起按),这样输入的“^M”其实是一个字符而不是两个,它会被视作一个有效的控制符。
好玩

发表于 : 2008-07-11 14:01
由 jarodlau
emacs 操作
M-shift-% 输入^M
然后替换为你想要的字符