Você pode processar cada arquivo e imprimir uma linha com algum caractere. X
para cada número ausente na sequência 1- max (onde max é o último número nesse arquivo), paste
os resultados substituem o caractere por espaço :
paste \
<(awk 'BEGIN{n=1};{while (n<$1) {print "X";n++}};{n=$1+1};1' file1) \
<(awk 'BEGIN{n=1};{while (n<$1) {print "X";n++}};{n=$1+1};1' file2) \
<(awk 'BEGIN{n=1};{while (n<$1) {print "X";n++}};{n=$1+1};1' file3) \
| tr X ' '
Se um certo valor estiver faltando em todos os arquivos, você obterá linhas vazias em sua saída (na verdade, elas não estão vazias, elas contêm apenas espaços em branco).
Para removê-los, substitua tr X ' '
por sed '/[[:digit:]]/!d;s/X/ /g'
Além disso, se você precisar de um cabeçalho, sempre poderá executar algo assim primeiro:
printf '\t%s' file1 file2 file3 | cut -c2-