Apague N linhas, mantenha o próximo N e assim por diante

0

Eu quero excluir as primeiras 12 linhas de um arquivo, manter as próximas 12 linhas e repetir isso no final do arquivo usando um comando do Linux ou shell script.

    
por Mohsen El-Tahawy 08.05.2016 / 01:24

5 respostas

2

Pipe através de perl -nle 'print if ((($.-1)/12)%2)'

    
por 08.05.2016 / 01:32
2

Usando os recursos do GNU awk

awk -v RS='([^\n]*\n){12}' '!(FNR % 2){printf "%s", RT}' file
    
por 08.05.2016 / 06:20
1

sed pode escolher intervalos de linhas e, em seguida, excluí-los:

sed -i '1~24,+11d' file
    
por 08.05.2016 / 09:49
1

Outra variante do awk:

awk '(NR-1)%24>11' file.txt > result.txt
    
por 08.05.2016 / 10:46
0

use tail "revertido"

tail -n +5

imprime tudo menos as cinco primeiras linhas.

head -n 5

imprime as primeiras cinco linhas. Então, se você quiser imprimir as linhas 6 a 10:

cat yourfile | tail -n +5 | head -n 5
    
por 08.05.2016 / 09:57