cauda / cabeça de toda a linha, exceto X últimas / primeiras linhas

0

por exemplo eu tenho esse arquivo:

cat myfile
1
2
3
4
5

Eu quero imprimir todas as linhas, exceto a primeira linha 2. saída deve ser assim:

tail -n $(( $(wc -l myfile | awk '{print $1}') - 2 )) myfile
3
4
5

Sim, a saída está correta. mas há um problema, temos 5 linhas neste arquivo de amostra, certo? se eu usar mais que 5 neste comando a saída deve estar vazia mas não é !!!

tail -n $ (($ (wc -l myfile | awk '{print $ 1}') - NÚMERO ))   meu arquivo

esta saída deve estar vazia, mas não é

tail -n $(( $(wc -l myfile | awk '{print $1}') - 8 )) myfile

1
2
3
4
5

myfile pode conter linhas X ... Obrigado pela ajuda

network
fonte

Respostas:

4

tail -n+3 produz as últimas linhas a partir do terceiro.

choroba
fonte
número da linha é variável e eu não sei quantas linhas existem. quer manter tudo exceto as últimas 3 linhas
network
Não foi isso que você descreveu na pergunta, mas head -n-3 deve dar o que você precisa.
choroba
Eu tenho a pergunta de edição. mas este arquivo é a saída de um script e nós não sabemos quantas linhas tem ...
network
Você não precisa saber o número de linhas.
choroba
1
tentei não é o que eu preciso, por exemplo, se eu quiser ter toda a linha, exceto 8 linhas, mas eu tenho apenas 5 linhas .assim a saída deve estar vazia: tail -n-8 myfile 1 2 3 4 5
network