salve cada linha de csv em um novo arquivo com nome de arquivo como a string contida em uma coluna específica

salve cada linha de csv em um novo arquivo com nome de arquivo como a string contida em uma coluna específica

Eu tenho um arquivo csv em uma máquina Linux como este:

value1 value2 name  
1      2      a  
2      3      b  
4      5      c  

O que eu quero é dividir as nentradas deste csv em narquivos de texto com apenas os números correspondentes nesse arquivo separados por espaço. N é determinado pelo valor no nome.

Então acima do csv se tornaria:

  • a.txtcontendo1 2
  • b.txtcontendo2 3
  • c.txtcontendo4 5

Caso haja várias entradas para um determinado arquivo name, elas devem ir juntas em um arquivo.

Ex, se houvesse

1  2  a   
21 31 a

então deveria haver um single a.txtcom

1  2     
21 31

Responder1

Na verdade é bem simples

awk '{print $1, $2 > $3 ".txt"}' file.csv

Você só deverá ter problemas se houver mais de mil arquivos novos

informação relacionada