Como excluir repetidamente o número de linhas do arquivo

0

Eu li Como eu apago as primeiras n linhas de um arquivo ascii usando comandos shell? , é útil. No entanto eu tenho um arquivo algo como abaixo (por favor considere 2 colunas como 2 arquivos diferentes):

1 4
1 4
1 4
1 4
1 4
3 5
3 5
3 5
3 5
3 5
7 5
7 5
7 5
7 5
7 5

Eu preciso excluir a linha 2-5 e depois 7-10 e assim por diante (as saídas válidas são 1, 3, 7 e 4, 5, 5).

Eu sei o número de linhas para as quais o padrão (número) se repete. No entanto, não sei se toda vez que seguiria o mesmo padrão para, e. aqui seu próximo arquivo 1, 3, 7 pode ter 4, 6, 1 ou 4, 5, 5, então eu preciso fazer com que o número de linhas seja baseado em valores de grep.

Alguém pode me dar um ponteiro como eu excluiria linhas repetidamente?

    
por wisemonkey 18.01.2013 / 20:47

3 respostas

3

Parece que você está procurando por uniq .

Ou, nos comentários:

sed '2,5d;7,10d;12,$d'
    
por 18.01.2013 / 20:54
0

Se o que você está realmente perguntando é enviado a cada enésima linha de um arquivo:

cat file | perl -ne '$. % 5 or print'

Possivelmente:

cat file | perl -ne '($.-1) % 5 or print'
    
por 15.05.2014 / 13:11
-1

use o seguinte comando

cat filename | sort | uniq > filename2
    
por 15.05.2014 / 12:42