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