com awk :
awk '
NR==FNR{for(i=1;i<=NF;i++){values[$i]};next}
FNR==1{for(i=1;i<=NF;i++){if ($i in values){nf[i]}}}
{sp=""; for(i=1;i<=NF;i++){if (i in nf){printf("%s%s",sp,$i);sp=" "}}}{print ""}
' file2 file1
Isso lê file2 primeiro, salva cada valor em uma matriz values e processa file1 - na primeira linha verifica quais campos são comuns e salva esses números de campo em outra matriz nf que é então usada como referência para imprimir seletivamente as colunas correspondentes.