Acho que o seguinte funcionaria:
sed -i '1 e printenv' file
Do manual do GNU sed:
'e COMMAND'
Executes COMMAND and sends its output to the output stream. The
command can run across multiple lines, all but the last ending with
a back-slash.
Como alternativa, você pode usar cat
, mas isso requer a criação de um arquivo temporário:
cat <(printenv) file > temporary_file; mv temporary_file file
Se o pacote moreutils
estiver instalado em sua máquina, você poderá evitar a criação manual de um arquivo temporário usando sponge
:
cat <(printenv) file | sponge file