Como imprimir o número selecionado de linhas repetidamente de um arquivo longo? [duplicado]

1

Eu quero ser capaz de imprimir linha 1,2,3,4,7 saltando linhas 5,6,8,9 e repita o padrão até o final do arquivo.

Exemplo de ENTRADA:

Line 1
Line 2
Line 3
Line 4
Line 5
Line 6
Line 7
Line 8
Line 9
Line 10
Line 11
Line 12
Line 13
Line 14
Line 15
Line 16
Line 17
Line 18

Saída desejada:

Line 1
Line 2
Line 3
Line 4
Line 7
Line 10
Line 11
Line 12
Line 13
Line 16

Usando o Solaris 10, KSH. Adoraria um nawk ou sed solução

    
por ayrton_senna 28.02.2018 / 01:50

1 resposta

4

Se eu entendi corretamente, você está procurando um padrão que se repete a cada nove linhas. Experimente:

$ awk '{r=NR % 9} r>0 && (r<=4 || r==7)' input
Line 1
Line 2
Line 3
Line 4
Line 7
Line 10
Line 11
Line 12
Line 13
Line 16

Como funciona

Primeiro, usamos r=NR % 9 para definir r para o número de linha módulo 9. Em seguida, selecionamos quais dessas nove linhas queremos manter: r>0 && (r<=4 || r==7) .

    
por 28.02.2018 / 01:57