Existe uma maneira simples de reproduzir um arquivo, pulando a primeira e a última linha? Eu estava olhando para tubulação de head
dentro tail
, mas para aqueles parece que eu teria que saber as linhas totais desde o início. Eu também estava olhando split
, mas também não vejo uma maneira de fazer isso.
text-processing
user394
fonte
fonte
head -n -1
remove a primeira e a última linha do meu.txt
arquivo, no Ubuntu 14.04.2LTS.Aqui está como fazer isso com
awk
:Também outra maneira de
sed
:x
é umsed
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 enquantosed
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
:$.
significa número da linha e$_
linha atual.perl -n
é um atalho para awhile(<..>) {..}
estrutura e-e
é para script embutido.fonte
Em python eu faria assim.
Cole o código acima em um arquivo e nomeie-o como
script.py
. Execute o script no arquivo que você deseja verificar.Exemplo:
fonte
Para usuários de Mac:
No Mac,
head -n -1
não funciona. Em vez disso, inverta o arquivo, corte a primeira linha e depois inverta-a:Explicação:
tail -r
: inverte a ordem das linhas em sua entradatail -n +2
: imprime todas as linhas a partir da segunda linha em sua entradafonte