Normalmente, um arquivo CSV parece assim:
file1.csv
:
a1,b1,c1,d1,e1
a2,b2,c2,d2,e2
a3,b3,c3,d3,e3
Agora, se tivermos um segundo arquivo CSV com formato e dimensões compatíveis (mesmo delimitador de coluna, aqui ,
- e mesmo número de colunas, aqui 5) e sem uma linha de título contendo títulos para cada coluna, como no exemplo abaixo :
file2.csv
:
a4,b4,c4,d4,e4
a5,b5,c5,d5,e5
Então, podemos concatenar os dois arquivos sem necessidade de conversão:
cat file1.csv file2.csv > output.csv
O resultado seria este:
output.csv
:
a1,b1,c1,d1,e1
a2,b2,c2,d2,e2
a3,b3,c3,d3,e3
a4,b4,c4,d4,e4
a5,b5,c5,d5,e5
Para mesclar automaticamente todos os arquivos em source1/
com arquivos com nomes iguais em source2/
(supondo que haja apenas arquivos CSV e todos os arquivos em source1/
também devem existir em source2/
), armazenar o resultado em output/
com o mesmo nome de arquivo, o seguinte one-liner da Bash fará o trabalho:
for f in source1/* ; do fname="$(basename -- "$f")" ; cat -- "source1/$fname" "source2/$fname" > "output/$fname" ; done