Usando sed
:
sed -n '
/^2009/ { h }
/^2009/ !{ G; s/^\(.*\)\n\(.*\)$/ /p }
' in_file
Explicação conforme solicitado:
-n
- faz com que sed
não imprima nada a menos que seja informado.
/^2009/ { h }
- quando chegarmos a uma linha que começa com 2009
, coloque-a no buffer de retenção.
/^2009/ !{...}
- o padrão dentro do {...}
é aplicado a todas as linhas que não começam com 2009
.
G; s/^\(.*\)\n\(.*\)$/ /p
- G
copia o buffer de armazenamento e o acrescenta à linha que acabou de ser lida no espaço padrão. Agora existem duas linhas no espaço de padrão que precisamos trocar a ordem e combinar antes de imprimir. O padrão de substituição com referências anteriores faz exatamente isso.