【问题标题】:Splitting CSV file based on a column根据列拆分 CSV 文件
【发布时间】:2015-10-25 09:16:13
【问题描述】:

我有一个大的 csv 文件,想根据一个类别(即 CSV 文件中的 B 列)将其拆分为较小的文件。

我的 CSV 文件如下所示:

Product     Category
Printer      Supplies

我目前正在使用 awk -F, '{print > ($2".txt")}' input.csv 哪个有效文件。这会根据每个类别生成许多文本文件。

我现在想从每个生成的文件中删除类别字段(即删除“逗号”之后的所有内容)。

现在生成的每个文本文件的格式为Product,Category。这应该只变成Product

我尝试使用 cut -d',' -f1 *.txt 但这不是将结果分别保存到每个文件中。

还有没有办法在一行中使用两个命令?或者即使 awk 有一种方法可以根据类别 $2 进行拆分,但只打印 $1?这样可以节省一些时间。

谢谢。

但我现在想进入每个删除的类别

【问题讨论】:

    标签: shell awk cygwin


    【解决方案1】:

    如果您只希望您的文件包含每条记录的第一个字段,那么就按照您现在所做的那样做,但只打印第一个字段:

    awk -F, '{print $1 > ($2".txt")}'
    

    【讨论】:

      猜你喜欢
      • 2012-01-14
      • 2021-07-25
      • 2017-10-10
      • 2015-03-06
      • 2012-04-14
      • 1970-01-01
      • 2018-04-01
      • 2018-11-04
      • 1970-01-01
      相关资源
      最近更新 更多