salva cada linha do csv no novo arquivo com o nome do arquivo como a string contida em uma coluna específica

2

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

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

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

Portanto, o csv se tornaria:

  • a.txt contendo 1 2
  • b.txt contendo 2 3
  • c.txt contendo 4 5

No caso de haver várias entradas para um determinado name , elas devem ser combinadas em um arquivo.

Ex se houver

1  2  a   
21 31 a

então deve haver um único a.txt com

1  2     
21 31

Por favor, me avise sobre como conseguir isso. Eu costumo postar um trecho do que eu tentei, mas neste caso, eu não tenho idéia por onde começar.

    
por kRazzy R 01.06.2018 / 17:36

1 resposta

3

É bem simples na verdade

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

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

    
por 01.06.2018 / 17:47