Muitas vezes temos um arquivo com muitas linhas de informação, e em algumas situações estas linhas estão repetidas o que não desejamos. Podemos resolver isso de forma simples com o comando uniq do Linux.

Primeiro temos um arquivo com vários nomes:

$ cat file.txt
Rodrigo
Fernando
Maria
Gisele
Ana
Gabriel
Antônia
Marcos
Maria
Julia
Maicon
Rodrigo
Ana
Fabricio
Maria

Note que o arquivo contém alguns nomes repetidos. Agora vamos utilizar o comando uniq para listar sem repetições.

$sort file.txt | uniq
Ana
Antônia
Fabricio
Fernando
Gabriel
Gisele
Julia
Maicon
Marcos
Maria
Rodrigo

Agora não temos repetições. Se você é um pouco atento deve ter notado que utilizamos o comando sort para listar os arquivos e mandar a saída para o uniq, isso deve ser feito porque ele só remove linhas duplicadas adjacentes, sendo necessário assim ordenar a linhas do arquivo antes que possamos utilizar o comando.

O comando por padrão é case sensitive, mas podemos ignorar o caso utilizando o parâmetro -i.

$ sort file.txt | uniq
Ana
Antônia
Fabricio
Fernando
Gabriel
Gisele
Julia
Maicon
Marcos
Maria
Rodrigo
RODRIGO


$ sort file.txt | uniq -i
Ana
Antônia
Fabricio
Fernando
Gabriel
Gisele
Julia
Maicon
Marcos
Maria
Rodrigo

Note que o nome RODRIGO em caixa alta foi tratado como diferente na execução do comando sem o parâmetro, e como repetido na com.

O comando uniq também permite listar somente as linhas estão repetidas para isto basta utilizar o parâmetro -d:

$ sort file.txt | uniq -d -i
Ana
Maria
Rodrigo

Também podemos utilizá-lo para contar quantas vezes uma linha linha aparece no arquivo com o parâmetro -c.

$ sort file.txt | uniq -d -c
      2 Ana
      3 Maria
      2 Rodrigo

Ele coloca no prefixo o número de vezes que a linha aparece no arquivo.

Como você deve ter percebido estamos apenas mostrando os resultados na tela, para criar um novo arquivo sem linhas duplica basta enviarmos o fluxo de saída para um novo arquivo.

$ sort file.txt | uniq -i  > file_sem_repeticao.txt
$ cat file_sem_repeticao.txt
Ana
Antônia
Fabricio
Fernando
Gabriel
Gisele
Julia
Maicon
Marcos
Maria
Rodrigo

Essa foi um dica rápida mas que pode ser bastante útil.