Skip to main content

Como classificar dados em um arquivo usando o Linux

Comando sort - Como ordenar dados em um arquivo de texto no Linux - LPIC 1 (Abril 2025)

Comando sort - Como ordenar dados em um arquivo de texto no Linux - LPIC 1 (Abril 2025)
Anonim

Introdução

Neste guia, mostrarei como classificar dados em arquivos delimitados e na saída de outros comandos.

Você não ficará surpreso ao saber que o comando que você usa para executar essa tarefa é chamado de "sort". Todos os principais parâmetros do comando sort serão fornecidos neste artigo.

Dados de amostra

Os dados em um arquivo podem ser classificados desde que sejam delimitados de alguma forma.

Por exemplo, vamos pegar a última liga da Scottish Premier League no ano passado e armazenar os dados em um arquivo chamado "spl".

Você pode criar um arquivo de dados da seguinte maneira com um clube e os dados desse clube separados por vírgulas em cada linha.

EquipeGols marcadosObjetivos contraPontos
céltico933186
Aberdeen624871
Corações594065
St Johnstone585556
Motherwell476350
Condado de Ross556148
Inverness544852
Dundee535748
Partick415046
Hamilton426343
Kilmarnock416436
Dundee United457028

Como classificar dados em arquivos

Daquela mesa, você pode ver que o Celtic venceu a liga e o Dundee United foi o último. Se você é um fã do Dundee United, você pode se sentir melhor e fazer isso classificando os gols marcados.

Para isso, execute o seguinte comando:

classificar -k2 -t, spl

Desta vez, o pedido seria o seguinte:

  • Partick
  • Kilmarnock
  • Hamilton
  • Dundee United
  • Motherwell
  • Dundee
  • Inverness
  • Condado de Ross
  • St Johnstone
  • Corações
  • Aberdeen
  • céltico

A razão pela qual os resultados estão nessa ordem é que a coluna 2 é a coluna de gols marcados e o tipo vai do menor para o maior.

A opção -k permite escolher a coluna para classificar e a opção -t permite escolher o delimitador.

Para ficarem realmente felizes, os fãs do Dundee United podem classificar pela coluna 4 usando o seguinte comando:

classificar -k4 -t, spl

Agora, o Dundee United é top e o Celtic está no fundo.

Claro, isso faria os fãs de Celtic e Dundee muito infelizes. Para acertar as coisas, você pode ordenar em ordem inversa usando a seguinte opção:

classifique -k4 -t, -r spl

Um switch bastante bizarro permite que você classifique aleatoriamente o que realmente faz as linhas de dados.

Você pode fazer isso usando o seguinte comando:

classifique -k4 -t, -R spl

Isso pode causar problemas reais se você misturar sua opção -r e sua opção -R.

O comando sort também pode classificar datas em ordem de mês. Para demonstrar, veja a seguinte tabela:

MêsDados Utilizados
janeiro4G
fevereiro3000K
Março6000 K
abril100 milhões
Maio5000 milhões
Junho200 mil
Julho4000K
agosto2500K
setembro3000K
Outubro1000 K
novembro3G
dezembro2G

A tabela acima representa o mês do ano e a quantidade de dados usados ​​em um dispositivo móvel.

Você pode classificar as datas em ordem alfabética usando o seguinte comando:

sort -k1 -t, datausedlist

Você também pode classificar por mês usando o seguinte comando:

sort -k1 -t, -M datausedlist

Agora, obviamente, a tabela acima já mostra-os na ordem do mês, mas se a lista foi aleatoriamente preenchida, então isso seria uma maneira simples de classificá-los.

Observando a segunda coluna, você pode ver que todos os valores estão em um formato legível que não parece fácil de classificar, mas o comando sort pode classificar a coluna de dados usados ​​usando o seguinte comando:

sort -k2 -t, -h datausedlist

Como classificar dados passados ​​de outros comandos

Embora a classificação de dados em arquivos seja útil, o comando sort também pode ser usado para classificar a saída de outros comandos:

Por exemplo, veja o comando ls:

ls -lt

O comando acima retorna cada arquivo como uma linha de dados com os seguintes campos exibidos nas colunas:

  • permissões
  • contagem de nós
  • username
  • nome do grupo
  • Tamanho
  • data do último acesso
  • nome do arquivo

Você pode classificar a lista por tamanho de arquivo executando o seguinte comando:

ls -lt | tipo -k5

Para obter os resultados em ordem inversa, use o seguinte comando:

ls -lt | classificar -k5 -r

O comando sort também pode ser usado em conjunto com o comando ps, que lista os processos em execução no sistema.

Por exemplo, execute o seguinte comando ps em seu sistema:

ps -eF

O comando acima retorna muitas informações sobre os processos atualmente em execução no seu sistema.

Uma dessas colunas é o tamanho e você pode querer ver quais processos são os maiores.

Para classificar esses dados por tamanho, você usaria o seguinte comando:

ps -eF | tipo -k5

Resumo

Não há muito para o comando sort, mas ele pode se tornar útil muito rapidamente ao classificar a saída de outros comandos em uma ordem significativa, especialmente quando o comando não tem suas próprias opções de classificação disponíveis.

Para mais informações, leia as páginas de manual do comando sort.