Объединение очень больших CSV-файлов с общим столбцом

Например, у меня есть два CSV-файла, 0.csv

100a,a,b,c,c
200a,b,c,c,c
300a,c,d,c,c

а также 1.csv

100a,Emma,Thomas
200a,Alex,Jason
400a,Sanjay,Gupta
500a,Nisha,Singh

и я хочу, чтобы вывод был похож

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

Как мне сделать это в сценарии оболочки Unix или Perl? Я знаю Unix & quot; присоединиться & quot; команда, и это будет хорошо работать с небольшими файлами. Например, чтобы получить мой результат, я мог бы просто сделать

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

но это неосуществимо для моих целей, так как мой фактический файл данных имеет более миллиона столбцов (общий размер данных в гигабайтах), и, следовательно, моя команда unix также будет иметь длину более миллиона символов. Это может быть самой важной головной болью, поскольку неэффективный код довольно быстро теряется.

Также обратите внимание, что мне нужен символ-заполнитель & quot; 0 & quot; всякий раз, когда отсутствуют данные. Это мешает мне просто использовать это

join -t , -a 1 -a 2 -1 1 -2 1 0.csv 1.csv

Также начинающий программист на Perl, поэтому некоторые детали действительно приветствуются. Я бы предпочел, чтобы решение было perl или shell-скриптом, но на самом деле все, что работает, было бы хорошо.

Ответы на вопрос(5)

Ваш ответ на вопрос