Comando sort no Linux (ordenar dados) [Guia Básico]

O comando sort no Linux ordena as linhas de um arquivo. Depois de ordenado, um arquivo pode ser trabalhado por outros comandos, como por exemplo, tirar ocorrências duplicadas com o comando uniq.

Suas opções são:

  • -b: Ignora espaços no início da linha;
  • -d: Coloca as linhas em ordem alfabética e ignora a pontuação;
  • -f: Ignora a diferença entre maiúsculas e minúsculas;
  • -I: Ignora caracteres de controle;
  • -h: ordenar em formato humano 
  • -m: Mescla dois ou mais arquivos em um arquivo ordenado de saída;
  • -M: Trata as três primeiras letras das linhas como mês (ex: JAN);
  • -n: Ordena pelos números no início das linhas;
  • -r: Ordena em ordem inversa;
  • -u: Se a linha for duplicada, mostra somente a primeira;
  • -o: Envia a saída do comando para o arquivo.

Como exemplo, vamos ordenar um arquivo de emails:

$ sort emails 
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]

Um cuidado deve ser tomado ao ordenar números. Veja o exemplo do arquivo desordenado abaixo:

$ cat numeros 
330
40
4
3
31
19
1

Ao usar o sort sem nenhum parâmetro, ele ordena primeiro usando o primeiro byte, depois o segundo:

$ sort numeros 
1
19
3
31
330
4
40

Para ordenar usando os números como caracter, você pode usar a opção -n, ou a opção -h para ordenar em formato humano:

$ sort -n numeros 
1
3
4
19
31
40
330

Aprenda muito mais sobre Linux em nosso curso online. Você pode efetuar a matrícula aqui. Se você já tem uma conta, ou quer criar uma, basta entrar ou criar seu usuário aqui.

Gostou? Compartilhe