Comando Linux uniq

comando uniq

Em sistemas operacionais do tipo Unix, o comando uniq reporta ou filtra linhas repetidas em um arquivo.

Este documento cobre a versão GNU / Linux do uniq.

Descrição

O uniq filtra as linhas adjacentes correspondentes do arquivo de entrada INPUT, gravando os dados filtrados no arquivo de saída OUTPUT.

Se INPUT não for especificado, o uniq lê da entrada padrão.

Se OUTPUT não for especificado, o uniq gravará na saída padrão.

Se nenhuma opção for especificada, as linhas correspondentes serão mescladas à primeira ocorrência.

Sintaxe

uniq [OPÇÃO] ... [ENTRADA [SAÍDA]]

Opções

-c, --count Prefixe as linhas com um número que representa quantas vezes elas ocorreram.
-d, --repetido Imprima apenas linhas duplicadas.
-D, --todos repetidos [= delimit-method] Imprima todas as linhas duplicadas. delimit-method pode ser um dos seguintes:

Nenhum Não delimite linhas duplicadas. Esse é o padrão.
preceder Insira uma linha em branco antes de cada conjunto de linhas duplicadas.
separado Insira uma linha em branco entre cada conjunto de linhas duplicadas.

A opção -D é a mesma que especificar --all-repeat = none.

-f N, --skip-fields = N Evite comparar os primeiros N campos de uma linha antes de determinar a exclusividade. Um campo é um grupo de caracteres, delimitado por espaços em branco. Essa opção é útil, por exemplo, se as linhas do documento estiverem numeradas e você quiser comparar tudo na linha, exceto o número da linha. Se a opção -f 1 for especificada, as linhas adjacentes

1 Esta é uma linha. 2 Esta é uma linha.

seria considerado idêntico. Se nenhuma opção -f fosse especificada, elas seriam consideradas únicas.

-i, --ignore-case Normalmente, as comparações diferenciam maiúsculas de minúsculas. Esta opção realiza comparações que não diferenciam maiúsculas de minúsculas.
-s N, - skip-chars = N Evite comparar os primeiros N caracteres de cada linha ao determinar a exclusividade. É como a opção -f, mas ignora caracteres individuais em vez de campos.
-u, --unique Imprima apenas linhas exclusivas.
-z, --zero-terminado Linhas finais com 0 byte (NULL), em vez de uma nova linha.
-w, --check-chars = N Compare no máximo N caracteres em linhas.
--Socorro Exiba uma mensagem de ajuda e saia.
--versão Informações de versão de saída e saída.

Notas

O uniq não detecta linhas repetidas, a menos que elas sejam adjacentes. Você pode classificar a entrada primeiro ou usar sort -u em vez de uniq.

Exemplos

Digamos que temos um arquivo de texto de oito linhas, myfile.txt, que contém o seguinte texto:

Esta é uma linha. Esta é uma linha. Esta é uma linha. Isso também é uma linha. Isso também é uma linha. Isso também é uma linha.

... Aqui estão várias maneiras de executar o uniq neste arquivo e a saída que ele cria:

uniq myfile.txt
Esta é uma linha. Isso também é uma linha. Isso também é uma linha.
uniq -c myfile.txt
3 Esta é uma linha. 1 2 Esta também é uma linha. 1 1 Isso também é uma linha.
uniq -d myfile.txt
Esta é uma linha. Isso também é uma linha.
uniq -u myfile.txt
Isso também é uma linha.

Comandos relacionados

comm - Compare dois arquivos classificados linha por line.pack - Compacte arquivos usando um algoritmo Huffman.pcat - Imprima o conteúdo descompactado de um arquivo compactado.sort - Classifique as linhas em um arquivo de texto.uncompress - Extraia arquivos de arquivos compactados.