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.
Equipe | Gols marcados | Objetivos contra | Pontos |
---|---|---|---|
céltico | 93 | 31 | 86 |
Aberdeen | 62 | 48 | 71 |
Corações | 59 | 40 | 65 |
St Johnstone | 58 | 55 | 56 |
Motherwell | 47 | 63 | 50 |
Condado de Ross | 55 | 61 | 48 |
Inverness | 54 | 48 | 52 |
Dundee | 53 | 57 | 48 |
Partick | 41 | 50 | 46 |
Hamilton | 42 | 63 | 43 |
Kilmarnock | 41 | 64 | 36 |
Dundee United | 45 | 70 | 28 |
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ês | Dados Utilizados |
---|---|
janeiro | 4G |
fevereiro | 3000K |
Março | 6000 K |
abril | 100 milhões |
Maio | 5000 milhões |
Junho | 200 mil |
Julho | 4000K |
agosto | 2500K |
setembro | 3000K |
Outubro | 1000 K |
novembro | 3G |
dezembro | 2G |
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.