删除大型csv文件的列

时间:2017-03-24 13:34:11

标签: linux csv

我有一个大约2 GB的大型CSV文件,包含7列。我想删除它的第4列,这是一个文本(片段)。我用" cut"命令如:

  

cut -d,f 4 - 补充文件

但它不会删除列,因为只要在一行中遇到逗号并从该行删除第4列,它就会生成列。在回答here后,我使用了csvquote,如:

  

csvquote文件| cut -d"," -f 4 - 补充| uniq -c | csvquote -u

它适用于一个小文件,但是为大文件抛出错误:

  

错误:对于定义的数据类型,值太大

我想知道一些删除大数据文件列的解决方案。感谢。

编辑:头文件输出:

  

滑稽,USER_ID,REVIEW_ID,文本,business_id,星星,日期,有用的,类型,凉爽   0,WV5XKbgVHJXEgw7f-b6PVA,hhmpSM4LcHQv6noXlYYCgw,"我们找不到这个地方,因为我读到他们有惊人的poutine。值得一游。这真的很神奇。从储存容器中取出,这个地方很时髦。两个巨大的poutine $ 10美元。薯条很脆,很好地保持着奶油状的肉汁。配上一大块吱吱作响的白色奶酪凝乳,这是一顿美味佳肴。

1 个答案:

答案 0 :(得分:0)

你是否试过告诉cut使用其他字段呢?

像这样:

trucks | cut -f 1,3- -d , | uniq -c | csvquote/csvquote -u

我在我的机器上测试了它似乎工作。但我没有看到你的数据样本,你也没有注意到哪个程序正在抛出

  

错误:对于定义的数据类型,值太大