UNIX: Usando sed, como imprimir cada primeira e segunda linhas em conjuntos de 4 linhas?

0

Meu arquivo tem vários conjuntos de linhas. Cada conjunto tem 4 linhas. A linha 1-4 é configurada 1. A linha 5-8 é configurada como 2 e assim por diante. Preciso imprimir as duas primeiras linhas de cada conjunto, ou seja, as linhas 1 e 2, as linhas 5 e 6 e assim por diante.

Conteúdo do arquivo:

line 1
line 2
line 3
line 4
line 5
line 6
line 7
line 8
..
line n
    
por kabita regmi 28.09.2018 / 17:20

2 respostas

2
sed -n '1~4p;2~4p'

1~4p corresponde a cada quarta linha, começando com o primeiro:

line 1
line 5
line 9
…

2~4p corresponde a cada quarta linha, começando com a segunda:

line 2
line 6
line 10
…

Quando usados juntos, eles fazem o que você quer.

    
por 28.09.2018 / 17:31
0

Eu não acho que sed é a ferramenta de escolha aqui - por que não apenas script de shell?

cat /path/to/infile | while true; do read l || break ; echo "$l" ; read l || break ; echo "$l" ; read l || break ; read l || break ; done > /path/to/outfile
    
por 28.09.2018 / 17:29

Tags