Em um pequeno script python, você pode combinar um número ilimitado de arquivos:
#!/usr/bin/env python3
import sys
#read the files, split the lines for reordering
lines = sum([[l.strip().split() for l in open(f).readlines()]\
for f in sys.argv[1:]], [])
# get the unique last sections
values = set(map(lambda x:x[1], lines))
# combine them with the combined first sections
newlist = [[y[0] for y in lines if y[1]==x]+[x] for x in values]
for l in newlist:
print(("\t").join(l))
Copie-o em um arquivo vazio, salve-o como merge.py
, execute-o pelo comando:
python3 /path/to/merge.py file1, file2, file3 (file4, file5 etc.)
Saída nos seus arquivos de exemplo:
10 3 9 Hac.2
1 33 23 Hhe.7
2 15 70 Hpyl.1
Adicionando mais arquivos
Como mencionado, o número de arquivos é, em princípio, ilimitado, se eu adicionar um arquivo 4:
40 Hhe.7
50 Hpyl.1
60 Hac.2
e execute o comando:
python3 /path/to/merge.py file1, file2, file3, file4
a saída será:
40 23 33 1 Hhe.7
50 70 15 2 Hpyl.1
60 9 3 10 Hac.2