Mesclando arquivos csv muito grandes com coluna comum
Por exemplo, eu tenho dois arquivos csv, 0.csv
100a,a,b,c,c
200a,b,c,c,c
300a,c,d,c,c
e 1.csv
100a,Emma,Thomas
200a,Alex,Jason
400a,Sanjay,Gupta
500a,Nisha,Singh
e eu quero uma saída para ser como
100a,a,b,c,c,Emma,Thomas
200a,b,c,c,c,Alex,Jason
300a,c,d,c,c,0,0
400a,0,0,0,0,Sanjay,Gupta
500a,0,0,0,0,Nisha,Singh
Como faço isso no shell script do Unix ou no Perl? Eu conheço o comando unix "join", e isso funcionaria bem com os arquivos pequenos. Por exemplo, para obter o meu resultado, eu poderia apenas fazer
join -t , -a 1 -a 2 -1 1 -2 1 -o 0 1.2 1.3 1.4 1.5 2.2 2.3 -e "0" 0.csv 1.csv
mas isso não é viável para meus propósitos, já que meu arquivo de dados real tem mais de um milhão de colunas (tamanho total de dados nos gigabytes) e, assim, meu comando unix também teria mais de um milhão de caracteres. Essa pode ser a dor de cabeça mais importante, já que o código ineficiente se esgota rapidamente.
Observe também que preciso do caractere de espaço reservado "0" sempre que houver dados ausentes. Isso me impede de simplesmente usar este
join -t , -a 1 -a 2 -1 1 -2 1 0.csv 1.csv
Também é um programador iniciante de Perl, então alguns detalhes realmente são bem-vindos. Eu preferiria que a solução fosse perl ou script de shell, mas realmente qualquer coisa que funcionasse estaria bem.