Parece que você está procurando por uniq
.
Ou, nos comentários:
sed '2,5d;7,10d;12,$d'
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?
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'
use o seguinte comando
cat filename | sort | uniq > filename2
Tags bash sed shell shell-script