<Anterior | Conteúdo | Próxima>
único
Comparado com tipo, único programa é leve. único executa uma tarefa aparentemente trivial. Quando fornecido um arquivo classificado (ou entrada padrão), ele remove todas as linhas duplicadas e envia os resultados para a saída padrão. É frequentemente usado em conjunto com tipo para limpar a saída de duplicatas.
Dica: Embora único é uma ferramenta Unix tradicional frequentemente usada com tipo, a versão GNU de tipo suporta um -u opção, que remove duplicatas da saída classificada.
Vamos fazer um arquivo de texto para experimentar:
[me @ linuxbox ~] $ cat> foo.txt a
bcabc
[me @ linuxbox ~] $ cat> foo.txt a
bcabc
Lembre-se de digitar Ctrl-d para encerrar a entrada padrão. Agora, se corrermos único em nosso arquivo de texto:
[me @ linuxbox ~] $ uniq foo.txt
abcabc
[me @ linuxbox ~] $ uniq foo.txt
abcabc
os resultados não são diferentes de nosso arquivo original; as duplicatas não foram removidas. Para
uniq para fazer seu trabalho, a entrada deve ser classificada primeiro:
[me @ linuxbox ~] $ classificar foo.txt | único
abc
[me @ linuxbox ~] $ classificar foo.txt | único
abc
Isto é porque único remove apenas linhas duplicadas adjacentes umas às outras.
O uniq tem várias opções. Aqui estão os mais comuns:
Tabela 20-2: Opções comuns do uniq
Descrição da Opção
Descrição da Opção
-c Produz uma lista de linhas duplicadas precedidas pelo número de vezes que a linha ocorre.
-d Produz apenas linhas repetidas, em vez de linhas exclusivas.
-f n ignorar n campos principais em cada linha. Os campos são separados por espaços em branco, pois estão em tipo; no entanto, ao contrário tipo, único não tem opção para definir um separador de campo alternativo.
-i Ignora maiúsculas e minúsculas durante as comparações de linha.
-s n Pular (ignorar) o líder n personagens de cada linha.
-u Produz apenas linhas exclusivas. Linhas com duplicatas são ignoradas.
Aqui vemos único usado para relatar o número de duplicatas encontradas em nosso arquivo de texto, usando o -c opção:
[me @ linuxbox ~] $ classificar foo.txt | unico -c
2 um
B 2
2 c
[me @ linuxbox ~] $ classificar foo.txt | unico -c
2 um
B 2
2 c