
Tengo un archivo csv en una máquina Linux como este:
value1 value2 name
1 2 a
2 3 b
4 5 c
Lo que quiero es dividir las n
entradas de este csv en n
archivos de texto con solo los números correspondientes en ese archivo separados por espacios. N está determinado por el valor del nombre.
Entonces el csv anterior se convertiría en:
a.txt
que contiene1 2
b.txt
que contiene2 3
c.txt
que contiene4 5
En caso de que haya varias entradas para un determinado archivo name
, éstas deberían ir juntas en un solo archivo.
ex si hubiera
1 2 a
21 31 a
entonces debería haber un single a.txt
con
1 2
21 31
Respuesta1
Es bastante simple en realidad
awk '{print $1, $2 > $3 ".txt"}' file.csv
Sólo debería tener problemas si habrá más de mil archivos nuevos