根据列拆分 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")}'
我有一个很大的 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")}'