Como já foi dito, >>
acrescenta ao arquivo, então o seu comando sed
ficará lá lendo as linhas que acabou de gerar e, em seguida, emitindo-as um pouco mais. Se você quisesse substituir seu arquivo no local, >
ainda não funcionaria, mas você está ciente da opção sed
-i
, que é definitivamente a que você deseja.
Se, no entanto, você tiver certeza absoluta de que deseja anexar a um arquivo que está lendo como um fluxo e só quiser fazer uma etapa disso, considere usar sponge
do pacote moreutils
package;
sed 's/original/edited/g' file.log | sponge >> file.log
sponge
lê de stdin na memória até EOF, então despeja todo o seu conteúdo para stdout, então sed
irá atingir o final do arquivo, parará de lê-lo, fechá-lo e então a esponja começará a anexá-lo.