$ awk 'FNR==NR{n+=NF;a[n]=" ";next} FNR>1{for(i=1;i<=NF;i++)printf "%s%s",$i,a[i]; print""}' file1 file2
112 1 2 01
000 0 0 22
122 2 2 22
Como funciona
Primeiro, lemos file1 e usamos o número de campos em cada linha para determinar onde os espaços devem ser inseridos na saída. Então, lemos o arquivo2 e inserimos os espaços.
-
FNR==NR{n+=NF;a[n]=" ";next}Este comando é executado ao ler o primeiro arquivo.
NFé o número de campos na linha atual.né o número cumulativo de campos visualizados. Inserimos um espaço na matrizapara cadan. (Outros valores serão padronizados para uma string vazia). -
FNR>1{for(i=1;i<=NF;i++)printf "%s%s",$i,a[i]; print""}Para as linhas após a primeira, imprimimos cada campo numerado
iseguido pora[i]. Quando imprimimos todos os campos nessa linha, usamosprintpara imprimir um caractere de nova linha.