Os comandos sort e uniq são muito úteis no dia-a-dia, principalmente quando se trabalha com shell script, cada um tem uma função específica mas podem, geralmente, trabalharem juntos através de um pipe, para entende-los melhor, segue abaixo uma breve descrição de cada, exemplos individuais e de como utiliza-los juntos.
sort – A função do comando sort é ordenar em seqüência crescente ou decrescente, como pode ser visto no exemplo abaixo.
Conteúdo do arquivo nomes.txt:
[dbruno@transltr ~]$ cat nomes.txt
Zilda
Carla
Bruna
Giselle
Joana
Amanda
Com o sort é possível organizar por ordem alfabética os nomes:
[dbruno@transltr ~]$ sort nomes.txt
Amanda
Bruna
Carla
Giselle
Joana
Zilda
Ou então organizar na ordem reversa:
[dbruno@transltr ~]$ sort -r nomes.txt
Zilda
Joana
Giselle
Carla
Bruna
Amanda
O mesmo pode ser feito com números.
Uniq – Tem a função de analisar linhas repetidas em seqüência e unifica-las, como pode ser visto no exemplo abaixo:
[dbruno@transltr ~]$ cat nomes.txt
Zilda
Zilda
Carla
Carla
Bruna
Giselle
Joana
Amanda
Amanda
Agora a mesma lista, com o uniq aplicado:
[dbruno@transltr ~]$ uniq nomes.txt
Zilda
Carla
Bruna
Giselle
Joana
Amanda
Os dois comandos podem ser utilizados juntos, quando há não há um seqüência não organizada e repetidas de caracteres ou números, como pode ser visto abaixo:
Conteúdo do arquivo nomes.txt:
[dbruno@transltr ~]$ cat nomes.txt
Zilda
Joana
Carla
Giselle
Bruna
Giselle
Joana
Bruna
Amanda
Zilda
Agora colocando os termos em ordem e unificando com o uso do sort e do uniq:
[dbruno@transltr ~]$ sort nomes.txt |uniq
Amanda
Bruna
Carla
Giselle
Joana
Zilda