sort -u
e sort | uniq
produza a mesma saída *: todas as linhas na entrada, exatamente uma vez cada, em ordem crescente. Esse é o comportamento padrão de uniq
.
uniq -u
, por outro lado, pergunta :
-u
Suppress the writing of lines that are repeated in the input.
Este é um comportamento muito diferente: somente as linhas que não são repetidas são exibidas. Quando o arquivo foi classificado primeiro, isso significa que as linhas aparecem apenas uma vez no arquivo inteiro (que é o que você queria).
* Há algumas ressalvas sobre como sort
e uniq
consideram a igualdade, o que Stéphane observou em esta resposta a uma questão relacionada . Para o código do idioma POSIX ou arquivos de alguma forma normalizada, eles são idênticos; para outros, pode haver diferenças distinguíveis.