当我尝试从csv
中删除^ M时出现问题当我输入vim或vi file.csv时,我得到了
A, TK,2015-04-06,14.4^M,14.7,10.0,0.0,54.0^M,13.3^M,135.0^M,33.8
B, NV,2015-04-06,14.4^M,14.7,5.4,0.0,47.0^M,14.8^M,97.0^M,31.3
我试过
tr -d '^M' < file.csv > file2.csv
但它也没有删除,也是用sed。
答案 0 :(得分:10)
您可以使用dos2unix
命令来执行此操作。
使用GNU / sed只是为了好玩:
sed -i -e "s/\r//g" file
使用tr
:
tr -d '\r' <file1 >file2
答案 1 :(得分:3)
你从哪里获得该文件?它看起来像是Mac上的旧System X文件。旧的OSX OS之前使用<CR>
作为行结尾。 Unix使用<LF>
,Windows / DOS使用<CRLF>
。
你有dos2unix吗?该程序可以将来自Unix / Linux,DOS / Windows或System X Mac的行结尾转换为您想要的任何格式。在您的文件中,我认为您需要转换{strong> 控制女士 的^M
而不是 Caret-M 至NL
个字符。
答案 2 :(得分:1)
您可以尝试:
perl -pE 's/(\^M|\r)//g' < file >file2
应该删除
^M
- 两个字符的序列^
和M
^M
为\r
字符。