Aqui está uma solução rápida e suja para manter apenas a última linha de saída no arquivo de log:
ping localhost |
while IFS= read -r line; do
printf '%s\n' "$line" > log.txt;
done
Tenha em atenção que agora você provavelmente tem todos os tipos de condições de corrida ao tentar acessar o arquivo para leitura. "Bloquear" o arquivo do acesso mútuo pode ajudar. Para obter mais informações sobre como bloquear essa pergunta no stackoverflow, pode ser um bom começo: Como faço para sincronizar (bloquear / desbloquear) o acesso a um arquivo no bash de vários scripts?