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