Comando Linux 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:
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 seu 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 linha.
pacote – Compactar arquivos usando um algoritmo de Huffman.
pcat – imprime o conteúdo não compactado de um arquivo compactado.
sort – Ordena as linhas em um arquivo de texto.
descompactar – Extrai arquivos de arquivos compactados.