Eu não conheço nenhuma ferramenta que faria isso, mas não é difícil codificar. Aqui está um trecho de perl:
perl -E 'for $i (1..4) { open ($file,"<","file${i}"); { local $/; @{$words[$i]} = split " ",<$file>; }; close($file); }; for $i (0..scalar(@{$words[1]})-1) { $p=0; for $j (2..4) { if ($words[1][$i] ne $words[$j][$i]) { print $words[$j][$i]; $p++ } } unless ($p) { print $words[1][$i] }; print " "; } print "\n"'
Muitas coisas poderiam ser melhoradas, a primeira coisa que eu resolveria se tivesse que usá-la seria o espaço extra no final da linha, eu provavelmente adicionaria as palavras de saída a uma matriz e usaria a função de junção , mas acho estranha a tarefa de realmente implementar isso.