Aqui está como fazer isso com awk
:
awk 'NR>2 {print t} {t=$0}'
Também outra maneira de sed
:
sed '1d;x' file.txt
x
é um sed
comando avançado , alterna a linha atual com a anterior: a corrente entra no buffer e a anterior vai para a tela e assim por diante enquanto sed
processa o fluxo linha por linha (é por isso que a primeira linha fica em branco).
awk
A solução em cada etapa (linha) coloca a linha atual na variável e começa a imprimi-la somente após a passagem da segunda linha. Assim, temos uma sequência de linhas de merda na tela do segundo ao último, exceto um. A última linha é omitida porque a linha está na variável e deve ser impressa apenas na próxima etapa, mas todas as etapas já acabam e nunca vemos a linha na tela.
A mesma ideia no perl
:
perl -ne 'print $t if $.>2 ; $t=$_' file.txt
$.
significa número da linha e $_
linha atual.
perl -n
é um atalho para a while(<..>) {..}
estrutura e -e
é para script embutido.
head -n -1
remove a primeira e a última linha do meu.txt
arquivo, no Ubuntu 14.04.2LTS.