Como combinar arquivos CSV

3

Eu tenho arquivos CSV que estão em uma forma de:

1.csv
1,2,3,4,5,6,7,8
2.csv
2,4,5,7,8,8,9,5
3.csv
2,3,4,5,6,7,8,9

.....

até 18.csv .

Eu quero que o resultado em result.csv seja:

1,2,3,4,5,6,7,8,2,4,5,7,8,8,9,5,2,3,4,5,6,7,8,9

Eu tentei cat , mas ele acrescenta um ao outro somente depois. Eu também quero transpor o CSV para que 1.csv seja convertido em:

1
2
3
4
5
6
7
8
    
por RKR 18.01.2017 / 13:15

2 respostas

2

Eu obtive o arquivo result.csv com:

for i in {1..18}; do paste $i.csv; done | paste -s > result.csv

Ou com gato:

for i in {1..18}; do cat $i.csv; done | paste -s > result.csv

(junte tudo com paste / cat e formate a saída com -s para tê-la em uma linha.)

Evitando o loop:

cat {1..18}.csv | paste -s > result.csv

Para transpor 1.csv:

sed 's/,/\n/g' 1.csv

(Apenas converta vírgulas por retorno de carro)

    
por 18.01.2017 / 13:21
0

Parte1:

paste -d, {1..18}.csv 

para datamash de uso de transposição genérica:

cat {1..3}.csv | datamash -t, transpose
1,2,2
2,4,3
3,5,4
4,7,5
5,8,6
6,8,7
7,9,8
8,5,9
    
por 22.01.2017 / 22:57