Linux Commands · 6 min read · Sep 19, 2025

Tutorial do Comando Uniq do Linux para Iniciantes (10 exemplos)

Se você é um usuário da linha de comando do Linux e seu trabalho envolve manipular arquivos de texto, você deve saber (se ainda não souber) que existem muitas utilidades de linha de comando que podem ser de grande ajuda em diferentes situações. Por exemplo, existe uma ferramenta chamada ‘uniq’ que relata ou até mesmo exclui linhas repetidas em um arquivo.

Neste artigo, discutiremos ‘uniq’ através de exemplos fáceis de entender. Mas antes de fazermos isso, vale a pena mencionar que todos os exemplos e instruções mencionados neste tutorial foram testados no Ubuntu 16.04LTS.

Comando Uniq do Linux

Como já mencionado no início, o comando uniq relata ou omite linhas repetidas. Aqui está a sintaxe geral deste comando:

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

De acordo com a página do manual da utilidade: “Filtra linhas adjacentes correspondentes da ENTRADA (ou entrada padrão), escrevendo na SAÍDA (ou saída padrão). Sem opções, as linhas correspondentes são mescladas na primeira ocorrência.”

A seguir estão alguns exemplos que ajudarão você a entender melhor a ferramenta.

1. Como excluir linhas repetidas usando o comando uniq

Suponha que o arquivo contenha as seguintes linhas:

Claramente, cada linha é repetida. Agora vamos executar o Uniq neste arquivo e ver o que acontece.

uniq file1

Então, como você pode ver, a saída que o comando produziu não contém linhas repetidas. Por favor, note que o arquivo original - ‘file1’ no nosso caso - permanece inalterado. Você pode redirecionar a saída da ferramenta para outro arquivo caso queira salvá-la e trabalhar com ela.

2. Como exibir o número de repetições para cada linha

Se você quiser, também pode fazer com que o uniq exiba na saída o número de vezes que uma linha é repetida. Isso pode ser feito usando a opção de linha de comando -c. Por exemplo, o seguinte comando:

uniq -c file1

produz a seguinte saída:

Então, como você pode ver, o número de repetições para cada linha é prefixado antes dela na saída.

3. Como imprimir apenas linhas duplicadas usando uniq

Para fazer o uniq imprimir apenas linhas duplicadas, use a opção de linha de comando -D. Por exemplo, suponha que o file1 agora contenha uma linha extra na parte inferior (note que esta linha não é repetida).

Agora, quando eu executar o seguinte comando:

uniq -D file1

A seguinte saída é produzida:

Como você pode ver, a opção -D faz com que o uniq exiba todas as linhas repetidas na saída, incluindo todas as suas repetições. Para melhor segregação, você pode ter uma linha em branco após cada grupo de linhas repetidas, algo que pode ser feito usando a opção –all-repeated.

uniq –all-repeated[=MÉTODO] file1

Esta opção requer que um nome de método seja inserido pelo usuário. Os valores podem ser prepend (para adicionar uma linha em branco) ou separate (para anexar uma linha em branco). Por exemplo, aqui está esta opção em ação com o método prepend.

ação com método prepend

Seguindo em frente, se você quiser que a ferramenta exiba apenas uma linha duplicada por grupo, então você pode optar pela opção -d. Aqui está um exemplo disso:

Claramente, apenas uma linha repetida de cada grupo foi exibida na saída.

4. Como fazer o uniq evitar comparar os primeiros campos

Às vezes, dependendo da situação, a similaridade de duas linhas é definida por uma pequena parte dessas linhas. Por exemplo, considere o conteúdo do seguinte arquivo:

Agora, suponha que as linhas sejam consideradas similares ou diferentes com base em seu segundo campo (HTF ou FF), e você deseja transmitir isso ao uniq, então isso pode ser feito usando a opção de linha de comando -f.

uniq -f [número-de-campos-a-pular] [nome-do-arquivo]

A opção -f requer que você passe um número que representa o número de campos que você deseja que o comando pule. Por exemplo, no nosso caso, podemos passar ‘1’ como argumento para -f, pois é apenas o primeiro campo que queremos que o uniq pule.

uniq -f 1 file1

A saída mostra claramente que o uniq considerou tanto a primeira quanto a terceira linhas como repetidas com base em seus respectivos segundos campos.

5. Como fazer o uniq exibir todas as linhas, enquanto separa grupos repetitivos com uma linha em branco

Caso a exigência seja exibir todas as linhas, enquanto separa grupos repetitivos de linhas com uma linha em branco, então você pode usar a opção –group. Assim como a opção –all-repeated que discutimos anteriormente, –group também requer que você informe a posição da linha em branco (prepend, append ou both).

Aqui está um exemplo:

fazer uniq exibir todas as linhas, enquanto separa grupos repetitivos com linha em branco

Note que a opção -f que já discutimos na seção anterior.

6. Como fazer o uniq imprimir apenas linhas não repetitivas

Como você deve ter entendido até agora, por padrão, o comando uniq exibe apenas linhas repetidas na saída. Mas se você quiser, pode fazer com que ele exiba apenas linhas não repetidas ou únicas. Isso pode ser feito usando a opção de linha de comando -u.

uniq -u [nome-do-arquivo]

Então, no nosso caso:

uniq -u file1

Aqui está um exemplo:

Note que a opção -f que já discutimos na seção/ponto número 4.

7. Como fazer o uniq evitar comparar um número definido de caracteres iniciais

Em um de nossos exemplos anteriores, discutimos como você pode fazer o uniq pular campos. No entanto, se você quiser, pode forçar a ferramenta a pular um número definido de caracteres iniciais também. Esse recurso pode ser acessado usando a opção de linha de comando -s.

uniq -s [número-de-caractere] nome-do-arquivo

Por exemplo, suponha que o arquivo contenha as seguintes linhas:

Agora, se você quiser que o uniq pule os primeiros 4 caracteres em cada linha antes de comparar, isso pode ser feito da seguinte maneira:

uniq -s 4 file1

Aqui está o comando acima em ação:

Então você pode ver que a quarta linha (faq_forge) que estava originalmente lá foi pulada na saída. Isso ocorre porque, após pular os primeiros quatro caracteres, a terceira e a quarta linha eram iguais e, portanto, consideradas repetidas pelo uniq.

8. Como limitar a comparação a um número definido de caracteres

Semelhante à maneira como você pula caracteres, você também pode pedir ao uniq para limitar a comparação a um número definido de caracteres. Para isso, você terá que usar a opção de linha de comando -w.

uniq -w [número-de-caracteres] [nome-do-arquivo]

Por exemplo, suponha que o arquivo contenha as seguintes linhas:

Agora, se a exigência for limitar a comparação aos primeiros 3 caracteres, isso pode ser feito da seguinte maneira:

uniq -w 3 file1

Aqui está o comando acima em ação:

Como os primeiros 3 caracteres da terceira e quarta linhas são iguais, essas linhas foram consideradas como repetidas. Portanto, apenas a terceira é exibida na saída.

9. Como fazer a comparação do uniq ser insensível a maiúsculas e minúsculas

Por padrão, a comparação que o uniq realiza é sensível a maiúsculas e minúsculas. No entanto, você pode tornar o processo insensível a maiúsculas e minúsculas usando a opção de linha de comando -i.

Por exemplo, considere o mesmo caso que discutimos na seção anterior, apenas que a quarta linha começa com H, O e W maiúsculos.

Agora, se você tentar executar o mesmo comando que usamos na seção anterior, verá que a saída é diferente:

Isso ocorre porque os primeiros três caracteres da terceira e da quarta linha são diferentes para o uniq por causa de suas maiúsculas. Em situações como essas, você pode tornar a comparação insensível a maiúsculas e minúsculas usando a opção -i.

10. Como fazer a saída do uniq ser terminada em NUL

Por padrão, a saída que o uniq produz é terminada em nova linha. No entanto, se você quiser, pode ter uma saída terminada em NUL em vez disso (útil ao lidar com uniq em scripts). Isso pode ser feito usando a opção de linha de comando -z.

uniq -z  [nome-do-arquivo]

Conclusão

Cobrimos praticamente todas as opções de linha de comando que o comando uniq oferece, então apenas pratique o que discutimos aqui, e você deve ter uma ideia sólida de como o uniq funciona e quais recursos ele fornece. Como sempre, em caso de qualquer dúvida ou questionamento, consulte primeiro a página do manual do comando.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.