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.

questionAnswers(5)

yourAnswerToTheQuestion