Você escreveu no seu último bloco,
linux$ paste temp2 temp > temp2
Você não pode fazer isso. (Bem, você pode, mas não funciona.) O que acontece aqui é que o shell trunca temp2 pronto para enviar saída do comando paste . O comando paste temp2 temp então é executado - mas por este estágio temp2 já é de tamanho zero.
O que você pode fazer é isso, que usa um terceiro arquivo para coletar a saída e, em seguida, substitui seu temp2 por seu conteúdo. O && garante que o conteúdo seja substituído apenas se o paste "tiver êxito" e o rm -f remover o arquivo temp3 transitório se o mv não tiver sido acionado ou falhado de alguma forma inesperada. / p>
paste temp2 temp > temp3 && mv -f temp3 temp2
rm -f temp3