0

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

ADDRESS ZIPCODE TOWN      NAME       DESCRIPTION

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

ADDRESS     ZIPCODE     TOWN      NAME       DESCRIPTION

看起来很容易:每次我看到 5 位数字时添加制表(之前和之后)邮政编码(所有地址都是法国邮政编码)。

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

4

2 回答 2

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

笔记

  • 如果您的 csv格式确实很好,那么 column 命令可以很好地解决您的问题。例如,您的描述文本中没有“,”。

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

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

于 2012-06-11T10:37:29.157 回答
0

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

column -s, -t file.csv

于 2012-06-11T10:14:13.550 回答