ファイルが最初の列名に分割される

ファイルが最初の列名に分割される

次のCSVファイルがあります。

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

1行ずつ分割して、最初の列の名前でファイルに保存したいと思います。

例:

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...";

関連情報