【问题标题】:Deleting colums of large csv files删除大型 csv 文件的列
【发布时间】:2017-03-24 13:34:11
【问题描述】:

我有一个大约 2 GB 的大型 CSV 文件,包含 7 列。我想删除它的第 4 列,它是一个文本 (sn-p)。我使用了“剪切”命令,例如:

cut -d, f 4 -- 补文件

但它不会删除该列,因为它会在一行中遇到逗号并从该行中删除第 4 列时创建列。在回答here之后,我使用了csvquote like:

csv 引用文件 |剪切 -d "," -f 4 --complement |唯一的-c | csvquote -u

它适用于小文件,但会引发大文件错误:

errno: 值对于定义的数据类型来说太大

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

编辑:头文件输出:

搞笑,user_id,review_id,文本,business_id,星星,日期,有用,类型,酷 0,WV5XKbgVHJXEgw7f-b6PVA,hhmpSM4LcHQv6noXlYYCgw,“特意去找这个地方,因为我读到他们有很棒的poutine。值得一游。真的很棒。从存储容器中送达这个地方很时髦。10美元两大份poutine。薯条很脆,可以很好地容纳奶油肉汁。上面是一大块吱吱作响的白奶酪凝乳,这是一顿美餐。

【问题讨论】:

  • 显示输入文件的片段就好了
  • 复制head file命令的输出并粘贴到这里
  • @RomanPerekhrest 完成。感谢您的澄清。 :)

标签: linux csv


【解决方案1】:

您是否尝试过让 cut 使用其他字段来代替?

像这样:

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

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

errno: 值对于定义的数据类型来说太大

【讨论】:

  • 感谢您的回复。我对其他字段尝试了相同的命令,但不起作用。我想问题出在文件的大小上。 csvquote 抛出该错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-15
  • 2021-03-04
  • 2021-10-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多