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:
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.