sed -e:t -e'$!{1N;N;s/\( .*\)\(\n[^ ]*\)\{2\}$//;tt' -e'P;D;}' <in >out
... isso funciona. recursivamente substitui o segundo em uma série de três linhas de entrada que ele considera idênticas do segundo campo delimitado por espaço em. ele continuará a desenhar outra linha de entrada para substituir cada uma, substituindo-a até que não consiga mais fazê-lo. somente quando ele não pode igualar três linhas similares, P
rint o primeiro em seu buffer antes de D
eletê-lo e voltar para tentar novamente com os dois que permanecem e a próxima linha de entrada.
com GNU ou BSD sed
:
sed -Ee:t -e'1N;$!N;s/( .*)(\n[^ ]*){2}$//;tt' -eP\;D <in >out
1447790360 99999 99999 20.25 20.25 20.25 20.50
1447790362 20.25 20.25 20.25 20.25 20.25 20.50
1447790386 20.25 20.25 20.25 20.25 20.25 20.50
1447790388 20.25 20.25 99999 99999 99999 99999
1447790389 99999 99999 20.25 20.25 20.25 20.50
1447790391 20.00 20.25 20.25 20.25 20.25 20.50
1447790394 20.25 20.25 20.25 20.25 20.25 20.50
1447790400 20.25 20.25 20.25 20.25 20.25 20.50