基于列拆分CSV文件

时间:2015-10-25 09:16:13

标签: shell awk cygwin

我有一个大型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?这会节省一些时间。

感谢。

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

1 个答案:

答案 0 :(得分:0)

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

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