分成第一列名称的文件

分成第一列名称的文件

我有这个 CSV 文件:

"Product ID";"Product Name";"Price";"Description";
"11;"Example";"200";"Descripcion here...";
"21;"Example2";"300";"Some here...";

我想将其逐行拆分,并将它们保存到具有第一列名称的文件中。

例子:

11.csv {"11;"Example";"200";"Descripcion here...";}
21.csv {"21;"Example2";"300";"Some here...";}

我使用这个命令:

 $ split -l 1 file.txt new  

但这会创建 newa 、newb、newc、newd 等!?

答案1

鉴于

$ cat > file.csv
"Product ID";"Product Name";"Price";"Description";
"11;"Example";"200";"Descripcion here...";
"21;"Example2";"300";"Some here...";

然后

$ awk -F';' 'NR>1 {print "{" $0 "}" > substr($1,2) ".csv"}' file.csv

结果是

$ head ??.csv
==> 11.csv <==
{"11;"Example";"200";"Descripcion here...";}

==> 21.csv <==
{"21;"Example2";"300";"Some here...";}

答案2

$ awk -F';' '{file=substr($1,2)".csv";if(NR>1){print $0 > file}}' inputFile

用于substr获取文件名并附加到.csv它,并NR>1忽略标题,最后写入文件。

$ head *csv

==> 11.csv <==
"11;"Example";"200";"Descripcion here...";

==> 21.csv <==
"21;"Example2";"300";"Some here...";

相关内容