根据列拆分 CSV 文件

Splitting CSV file based on a column

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

我的 CSV 文件如下所示:

Product     Category
Printer      Supplies

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

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

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

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

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

谢谢。

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

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

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