Dividido em arquivo com nome da primeira coluna

0

Eu tenho este arquivo CSV:

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

Eu quero dividir linha por linha e salvá-los no arquivo com o nome da primeira coluna.

Exemplo:

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

Eu uso este comando:

 $ split -l 1 file.txt new  

Mas isso cria newa, newb, newc, newd, etc!?

    
por Jess 16.07.2018 / 03:40

2 respostas

1

Dado

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

então

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

resulta em

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

==> 21.csv <==
{"21;"Example2";"300";"Some here...";}
    
por 16.07.2018 / 03:54
0
$ awk -F';' '{file=substr($1,2)".csv";if(NR>1){print $0 > file}}' inputFile

Use substr para obter o nome do arquivo e adicione .csv a ele, e NR>1 para ignorar o cabeçalho e, por fim, gravar no arquivo.

$ head *csv

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

==> 21.csv <==
"21;"Example2";"300";"Some here...";
    
por 16.07.2018 / 03:58