O sed
command r
colocará o conteúdo do arquivo especificado na saída antes de ler a próxima linha de entrada. Infelizmente você não pode especificar 0
como o endereço para este comando, então não há como inserir o conteúdo de um arquivo antes da primeira linha de entrada (sem vasculhar o espaço de espera).
Você poderia, no entanto, usar apenas o antigo cat
. É, afinal de contas, o comando para concatenar arquivos:
$ cat file1.txt file2.txt >out && mv out file2.txt
Para ter certeza de que você está escrevendo em um arquivo temporário que ainda não existe, pode-se usar o utilitário mktemp
:
$ tmp="$(mktemp)" && cat file1.txt file2.txt >"$tmp" && mv "$tmp" file2.txt
Isso é um pouco estranho na linha de comando, mas é uma boa precaução em qualquer script que precise gravar em um arquivo temporário.