如何取消vi中显示的^M符号

作者&投稿:姚枯 (若有异议请与网页底部的电邮联系)
如何取消Linux下,vi中显示的^M符号~

命令模式下输入:
:1,$ s/^M//g 回车
其中^M 输入方式为按住Ctrl的同时依次按vm

那个文件(假定其名字为abc)很有可能是从Windows机器copy过来的。去掉的办法是运用dos2unix指令:

dos2unix abc

这样会得到一个新的abc文件,不再含有^M

如果在Dos或Windows下使用编辑器编写一些文本文件,然后通过网络传送到Unix/Linux下使用vi打开,那么会看到一些^M符号. 因为Dos或Windows下的换行符是"\r\n",即对应的ASCII码十进制形式是: 13, 10. 而Unix/Linux下的换行符是"\n",即对应的ASCII码十进制形式是: 10. 因此,使用vi打开该文件所显示的特殊符号^M,其实其对应的ASCII码十进制形式是: 13 ; 对应的八进制形式是 015; 对应的十六进制形式是 0x0D. 解决的方法很多,其中比较简单的一种是,在shell提示符下发出命令:tr -d "\015" < myfile.txt > myfile_new.txt那么可以把符号^M(即"\015")去掉,并另存为新文件myfile_new.txt.

去除vim ^M符号
答:有两种情况,会出现打开的文件都显示^M符号:1. vim被配置为fileformat=unix,而你打开的文件都是dos格式的。unix格式的换行符为0A(ascii码)也就是<LF>,dos格式的换行符为 0D 0A(也就是<CR><LF>),<CR>其实就显示为^M。下面是详细讲解:DOS, Mac 和Unix格式的文件 回想计算机的史前史,...

Linux中vi的查找、替换、删除操作
答:使用命令:cat filename1 | tr -d “^V^M” newfile;使用命令:sed -e “s/^V^M//” filename outputfilename需要注意的是在1、2两种方法中,^V和^M指的是Ctrl+V和Ctrl+M。你必须要手工进行输入,而不是粘贴。在vi中处理:首先使用vi打开文件,然后按ESC键,接着输入命令:1: :%s...

Linux下回车^M去除方法
答:Unix体系里,每行结尾只有“<换行>”,即“\n”;Windows体系里面,每行结尾是“<换行><回 车>”,即“\n\r”。一个直接结果是,Unix体系下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix下打开的话,在每行的结尾可能会多出一个^M符号。如果正常编辑文件中看不见^M...

我在linux下使用vi打开一个文件后,然后保存关闭,结果发现最后多出一个...
答:先用ls -l查看文件大小,例如源文件为8字节,用VI编辑后变成了9字节。这一般是VI在最后加了个‘\n’字符,可以用objdump -c 文件名 查看最后的字符到底是什么。用truncate -s 8 文件名 把文件截断至8字节即可。不过'\n'不会影响程序编译吧,但是回车^M这个字符在VI里面是可见的。如果是^M就用...

...结尾会出现两个^M^M.这是怎么产生的,代表什么符号?
答:windows创建的文件是 \n\r结束的, 而linux,mac这种unix类系统是\n结束的。所以unix的文本到windows会出现换行丢失(ultraedit这种软件可以正确识别); 而反过来就会出现^M的符号了 补充:windows里用ultraedit,选16进制模式(hex mode)可以看到。linux里面,我就不熟悉了。建议查看一下刘遄老师的《linux...

gvim win中编辑好了上传到unix系统里,为什么每行后面都有^M_百度...
答:因为UNIX与Windows使用的行尾格式不同。更多信息,参见参考资料。解决:VIM窗口,〔编辑〕菜单-》文件设定-》文件格式-》选择UNIX 即可把文件的格式转换为UNIX式样。参考资料:http://zhang41082.itpub.net/post/7167/453743

vim打开文档每行最后都有^M怎么办?使用dos2unix命令转换
答:提示:”bash: ./here1:/bin/sh^M:损坏的解释器: 没有该文件或目录“。之后用vi编辑器打开文件,发觉每一行的最后有浅蓝色的字符’^M’。才知道了问题所在其实并没什么奇怪的,出现这种错误的原因是因为Linux和Windows文本文件的行结束标志不同。在Linux中,文本文件用\n表示回车换行,...

linux文本模式设置工具linux文本模式
答:linux编辑模式怎么取消字符标注?在linux下,不可避免的会用VIM打开一些windows下编辑过的文本文件。我们会发现文件的每行结尾都会有一个^M符号,这是因为DOS下的编辑器和Linux编辑器对文件行末的回车符处理不一致,对于回车符的定义:windows:0D0A unixlinux:0A MAC:0D 比较快捷的去除这些符号的方法有...

shell 中怎样去除数据中^M 字符。
答:有2中方法可以去掉这个回车换行符号。第一种是全文替换,第二中是先搜索字符串,然后用sed命令处理。方法一:用vim打开文件,输入以下命令 vi filename 然后在vi命令模式下输入以下内容::/^M//g 这里特别注意:注意^M符号的输入方法,先按住CTRL,再按下v和m 方法二:打开一个terminal命令窗口,输入...

linux 行尾 ^M 是什么
答:Window系统中用/r/n来表示换行,linux中用/n来表示换行,Windows的文本文件,直接拿到linux中使用可能会会出错,因为多出了“/r”字符,这就是我们看到的^M。那要如何去掉呢,总不能一行行删吧!解决方法:方法1: 在命令模式下:输入:%s/^M//g 然后,回车即可替换 注,其中”^M”的输入,分别是...