Estou assumindo T1, T2 são os nomes de quatro arquivos de entrada:
Usando o awk:
awk 'FNR==1 { header = header " " FILENAME;
next # we want to skip the first line
}
{ rows[$1]; for(i=2;i<=NF;i++) A[$1,i] = A[$1,i] " " $i }
END { for(i=2;i<=5;i++) {
printf("__%s\n", header);
for(j in rows) printf("%s%s\n", j, A[j,i]);
}
}' T1 T2 T3 T4
Isso cria apenas um único arquivo de saída, com todas as tabelas desejadas concatenadas. Se você quiser dividi-lo em quatro arquivos, terá que fazer mais trabalho.
Se você quiser extrair as linhas de cabeçalho da primeira linha em vez do nome dos arquivos de entrada, substitua FILENAME
por $0
.