Comando Linux uniq


0

Comando Linux uniq

comando uniq

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

Esta página cobre a versão GNU \/Linux do uniq.

Descrição

O uniq filtra as linhas adjacentes e correspondentes do arquivo de entrada INPUT, gravando os dados filtrados no arquivo de saída OUTPUT. Uma linha correspondente é “adjacente” se for imediatamente antes ou depois de outra linha correspondente.

Por exemplo, considere um arquivo fruits.txt com as seguintes linhas de texto:

apple
apple
apple
pear
apple
pear
pear

Se você executar uniq nessas linhas de texto, todas as linhas que corresponderem a uma linha adjacente serão omitidas:

uniq fruits.txt
apple
pear
apple
pear

Sintaxe

uniq [OPTION]... [INPUT [OUTPUT]]

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. Este é o padrão.
prefixar 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 é o mesmo 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.

Esta opção é útil, por exemplo, se as linhas do seu documento são numeradas e você deseja comparar tudo na linha, exceto o número da linha. Se a opção -f 1 for especificada, as linhas adjacentes

1 This is a line. 2 This is a line.

seriam considerados idênticos. Se nenhuma opção -f for especificada, eles serão considerados exclusivos.

-i, –ignore-case

Normalmente, as comparações diferenciam maiúsculas de minúsculas. Em vez disso, esta opção executa 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 pula caracteres individuais em vez de campos.

-u, –unique

Imprima apenas linhas exclusivas.

-z, –zero-terminado

Terminar linhas com 0 byte (nulo), em vez de uma nova linha.

-w, –check-chars = N

Compare no máximo N caracteres nas linhas.
–ajuda Exiba uma mensagem de ajuda e saia.
–versão Informações de versão de saída e saída.

Notas

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

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

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

O uniq não detecta linhas repetidas a menos que sejam adjacentes. Se você quiser omitir TODAS as ocorrências de linhas idênticas, classifique a entrada primeiro ou use sort -u em vez de uniq.

Exemplos

Nos exemplos a seguir, temos um arquivo de texto, myfruit.txt, com cinco linhas de texto:

 I have an apple.
 I have an apple.
 I also have two pears.
 I have an apple.
 I have three fruits total.

Aqui estão várias maneiras de executar uniq neste arquivo para omitir linhas repetidas.

Se as linhas adjacentes forem idênticas, exibe a linha uma vez

uniq myfruit.txt
 I have an apple.
 I also have two pears.
 I have an apple.
 I have three fruits total.

O mesmo que acima, mas prefixe cada linha com o número de vezes repetidas

uniq -c myfruit.txt
    2 I have an apple.
    1 I also have two pears.
    1 I have an apple.
    1 I have three fruits total.

Mostrar apenas duplicatas (linhas idênticas adjacentes)

uniq -d myfruit.txt
I have an apple.

Mostrar apenas linhas exclusivas (sem linhas idênticas adjacentes)

uniq -u myfruit.txt
 I also have two pears.
 I have an apple.
 I have three fruits total.

Classifique as linhas em ordem alfabética

O comando sort classifica as linhas do texto em ordem alfabética.

sort myfruit.txt
 I also have two pears.
 I have an apple.
 I have an apple.
 I have an apple.
 I have three fruits total.

Agora todas as linhas idênticas são adjacentes.

Mostrar linhas únicas apenas uma vez

A saída de classificação pode ser canalizada para uniq. Como a entrada é classificada, todas as linhas idênticas serão adjacentes. Como resultado, todas as linhas idênticas no arquivo são exibidas apenas uma vez.

sort myfruit.txt | uniq
 I also have two pears.
 I have an apple.
 I have three fruits total.

O mesmo resultado pode ser obtido executando sort -u.

sort -u myfruit.txt
 I also have two pears.
 I have an apple.
 I have three fruits total.

comm – Compare dois arquivos classificados linha por linha.
pack – Compactar arquivos usando um algoritmo de Huffman.
pcat – Imprime o conteúdo descompactado de um arquivo compactado.
sort – Classifique as linhas em um arquivo de texto.
descompactar – Extraia arquivos de arquivos compactados.


Like it? Share with your friends!

0
Rubem Rego

0 Comments

Your email address will not be published. Required fields are marked *