2012-06-11 32 views
0

我需要“解析”一个像400000行一样的cvs文件。 CVS的样子:在colum csv文件中添加制表

ADDRESS ZIPCODE TOWN  NAME  DESCRIPTION 

我需要第一科拉姆分开这样的:

ADDRESS  ZIPCODE  TOWN  NAME  DESCRIPTION 

这看起来很容易:添加制表(前后)ZIPCODE每次我看到5位(所有的地址是法国邮政编码)。

但我不知道如何? 我尝试了一个sed commande行,但我找不到好的语法。或者一个VBA应该更适合。

回答

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

注意

  • 列命令是很好的解决了您的问题,如果您的csv是真的格式良好。例如您的说明文字中没有“,”。

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

  • 如果你的“ADDRESS”列中有相同的格式,那么sed行会失败。

+0

完美,我所有的地址都是“格式良好”,不是“”。 正是我需要的 –

0

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

column -s, -t file.csv