在列csv文件中添加列表

时间:2012-06-11 09:57:02

标签: csv sed

我需要“解析”一个像400 000行一样的cvs文件。 cvs看起来像:

ADDRESS ZIPCODE TOWN      NAME       DESCRIPTION

我需要像这样分开第一列:

ADDRESS     ZIPCODE     TOWN      NAME       DESCRIPTION

看起来很简单:每次看到5位数(所有地址都是法国邮政编码)时,添加列表(之前和之后)ZIPCODE。

但我不知道怎么办? 我尝试使用sed commande行,但我找不到好的语法。或者VBA应该更合适。

2 个答案:

答案 0 :(得分:1)

sed -r 's/( [0-9]{5} )/\t\1\t/' yourFile.csv

注意

    如果您的csv 确实格式正确,
  • 列命令可以很好地解决您的问题。例如在您的说明文字中没有“,”。

  • 上面的sed行将检查你文件的每一行,找到第一个出现的5个数字/数字并用TAB包装。我假设您文件中的zipcodes为[space]number{5}[space]

  • 如果“ADDRESS”列中的格式相同,则sed行将失败。

答案 1 :(得分:0)

使用column命令将拆分.csv文件的字段,如下所示:

column -s, -t file.csv