从csv文件中删除^ M.

时间:2015-04-06 14:44:50

标签: bash

当我尝试从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。

3 个答案:

答案 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字符。