Dado o tamanho de seus arquivos, eu escolheria escrever isso em uma linguagem como Perl ou Python para que eu pudesse carregar o arquivo de substituição na memória (em um hash ou dicionário para pesquisas rápidas) e depois analisar a linha principal do arquivo csv por linha. Aqui está um exemplo em Python de como fazer isso, supondo que seus arquivos csv foram chamados de "replace.csv" para as substituições e "big.csv" para o arquivo csv principal.
#!/usr/bin/python
import csv
import sys
repl = dict()
# Load replacements into memory
with open("replace.csv", "r") as csvfile:
reader = csv.reader(csvfile, delimiter=',')
for row in reader:
if len(row) >= 2:
repl[row[0]] = row[1]
# Do the replacements
with open("big.csv", "r") as csvfile:
reader = csv.reader(csvfile, delimiter=',')
writer = csv.writer(sys.stdout)
for row in reader:
if len(row) >= 3:
if row[2] in repl:
row[2] = repl[row[2]]
writer.writerow(row)