Answers:
该^M
是一个回车符。如果看到此消息,则可能是在查看源自DOS / Windows世界的文件,该文件的行尾由回车/换行符对标记,而在Unix世界中,该行的末尾由回车/换行对标记。用一个换行符标记。
阅读本文以获得更多详细信息,也请阅读Wikipedia条目的换行符。
本文讨论了如何设置vim以使用不同的行尾标记透明地编辑文件。
如果您^M
在某些行的末尾有一个文件,并且想要摆脱它们,请在Vim中使用它:
:s/^M$//
(按Ctrl+ V Ctrl+ M插入^M
。)
:%s/^M/\r/g
删除^M
并替换^M
为换行符\r
。不使用时%
,该命令仅适用于当前行。我遇到了一些^M
不在行尾的示例,例如The first line.^MThe second line.
:%s/^M/
^M
在UNIX中使用
\n
在Unix中使用,这是正确的。那是ASCII码10
,否则称为^J
。
这是什么^ M?
^ M是回车符。如果看到此消息,则可能是在查看源自DOS / Windows世界的文件,该文件的行尾由回车/换行符对标记,而在Unix世界中,该行的末尾由回车/换行对标记。用一个换行符标记。
它怎么可能到达那里?
文件格式发生变化时。
我如何摆脱它?
使用打开文件
vim -b FILE_PATH
用以下命令保存
:%s/^M//g
就我而言
上面没有任何工作,我从Mac复制了一个CSV文件到Linux机器,并且使用了上面所有命令,但下面没有任何帮助
tr "\015" "\n" < inputfile > outputfile
我有一个文件,其中^ M个字符在以下各行之间被抽动
Audi,A4,35 TFSi Premium,,CAAUA4TP^MB01BNKT6TG,TRO_WBFB_500,Trico,CARS,Audi,A4,35 TFSi Premium,,CAAUA4TP^MB01BNKTG0A,TRO_WB_T500,Trico,
将以下行添加到您的〜/ .vimrc中
command! Tounix :call Preserve('1,$s/^M//')
然后,当您具有Windows行尾的文件时,运行命令“:Tounix”。
过去,我什至看不到配置文件也无法正确解析并抱怨空格,但是如果您使用vi并执行设置列表,它将不会显示空格,grep filename [[space]]会显示^ M
那是时候dos2unix file
帮助