Comando sort – Ordenando dados em um arquivo de texto no Linux – LPI 1

Comando sort – Ordenando dados em um arquivo de texto no Linux – LPIC 1

O comando sort é utilizado para organizar os dados dentro de um arquivo, de acordo com a necessidade do usuário, e exibir esses dados classificados na saída padrão, ou redirecionar essa saída a outro arquivo.

Ele permite classificar as linhas de um arquivo de texto de várias formas, como por exemplo alfabeticamente ou numericamente.

Por padrão, ordena de acordo com os dados da primeira coluna de valores do arquivo.

Sintaxe:

sort [opções] [arquivo]

Opções do comando sort:

-b, –ignore-leading-blanks
Ignorar espaçosem branco no início do arquivo

-d, –dictionary-order
Considerar apenas espaços e caracteres alfanuméricos

-f, –ignore-case
Converter caracteres de caixa baixa para caixa alta

-g, –general-numeric-sort
Comparar de acordo com valores numéricos genéricos

-i, –ignore-nonprinting
Considerar apenas caracteres imprimíveis

-M, –month-sort
Classificar por mês (JAN < … < DEZ)

-n, –numeric-sort
Comparar de acordo com valores de string numérica

-o, –output=ARQUIVO
Escreve o resultado em ARQUIVO em vez da saída padrão

-r, –reverse
Ordem reversa

-c, –check
Verificar se a entrada já está ordenada – neste caso, não ordenar.

-t [delimitador]
Especificar um delimitador de colunas para poder ordenar o arquivo por dados em uma coluna que não seja a primeira.

-u, –unique
Mostra apenas a primeira ocorrência de uma string, ou seja, elimina entradas duplicadas.

-k num
Especificar o número num da coluna que será usada para classificar o arquivo. Por padrão, os separadores de campos são os espaços em branco ou tabulações.

–help
Mostrar a ajuda e sair

–version
Mostrar informações sobre a versão e sair.

Exemplos:

1. Vamos classificar os dados do arquivo de grupos do sistema (/etc/group) em ordem alfabética de nome de grupo (coluna 1 do arquivo):

# sort /etc/group

Classificar conteúdo de arquivos no Linux com comando sort

2. Ordenar os grupos do arquivo /etc/group por número de GID (coluna 3 do arquivo):

# sort -n -t: -k3 /etc/group

Comando sort - classificar arquivos no linux

3. Idem anterior, porém em ordem reversa:

# sort -nr -t: -k3 /etc/group

Comando sort - classificação de conteúdo de arquivos no Linux

4. Ordenar os grupos do arquivo /etc/group por número de GID e salvar o resultado no arquivo de nome grupos_ordenados:

# sort -n -t: -k3 /etc/group > grupos_ordenados

Ordenar conteúdo de arquivos no Linux com sort

5. Ordenar o arquivo /etc/passwd por ordem alfabética de usuário, escrevendo a saída num arquivo chamado de teste:

# sort --output=teste /etc/passwd
# cat teste

Ordenar arquivos no Linux com utilitário sort

6. O arquivo vendas possui duas colunas de dados: a primeira coluna mostra o mês da venda, a segunda coluna o nome do produto, e a terceira coluna a quantidade. Porém, as vendas não estão classificadas em nenhuma ordem em particular. Veja:

Classificação de arquivos no Linux com sort

Vamos classificar esse arquivo em ordem de mês de venda:

# sort -M vendas

utilitário sort no Linux

7. Queremos agora apenas gerar uma listagem de produtos distintos vendidos, sem repetições de nomes. Usaremos o comando sort em conjunto com o comando cut nesse exemplo:

# cut -f2 vendas | sort -u

como usar o comando sort no linux

Note que sem usar o sort com a opção -u serão retornadas todas as linhas do arquivo, o que incluirá nomes de produtos repetidos.

Assista a um vídeo explicativo sobre o utilitário sort no Linux para obter maiores informações:

Sobre Fábio dos Reis (1195 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 30 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Ciência e Tecnologia em geral, adora Viagens e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.

1 Comentário em Comando sort – Ordenando dados em um arquivo de texto no Linux – LPI 1

  1. zezaomachado // 13/08/2019 em 11:14 // Responder

    Poderia me dizer como faço para classificar(organisar) pelo tamanho das linhas… da menor para maior.

Escreva um comentário

Seu e-mail não será divulgado


*