Introdução
Neste laboratório, você explorará o versátil comando sort no Linux, um utilitário poderoso para organizar e arranjar dados de texto. Como administrador escolar, você utilizará várias opções do comando sort para gerenciar e analisar informações de alunos de maneira eficiente. Esta experiência prática ajudará você a entender como manipular dados em cenários do mundo real usando ferramentas de linha de comando do Linux.
Ordenação Básica de Nomes de Alunos
Vamos começar ordenando uma lista de nomes de alunos em ordem alfabética. Esta é uma tarefa comum ao criar listas de chamada ou organizar registros estudantis.
Primeiro, vamos visualizar o conteúdo da nossa lista de alunos:
cat ~/project/students.txt
Você deverá ver uma lista de nomes de alunos sem uma ordem específica, semelhante a esta:
David Lee
Alice Johnson
Charlie Brown
Bob Smith
Eve Wilson
Agora, vamos usar o comando sort para organizar esses nomes em ordem alfabética:
sort ~/project/students.txt
Este comando exibirá a lista ordenada dos nomes dos alunos na sua tela. A saída deve ser parecida com esta:
Alice Johnson
Bob Smith
Charlie Brown
David Lee
Eve Wilson
O comando sort, por padrão, ordena as linhas alfabeticamente. Ele compara as linhas caractere por caractere, começando do início de cada linha. É por isso que "Alice" vem antes de "Bob", e assim por diante.
Se você não vir nenhuma saída, não se preocupe! O comando funcionou, mas apenas exibiu o resultado no terminal. Se você quiser salvar a lista ordenada em um novo arquivo, pode usar o operador de redirecionamento de saída > desta forma: sort ~/project/students.txt > ~/project/sorted_students.txt
Ordenando Alunos por Idade
Em seguida, vamos ordenar os alunos por suas idades. Isso pode ser útil ao organizar estudantes em grupos ou atividades adequadas para cada faixa etária.
Primeiro, vamos observar nossos dados:
cat ~/project/student_ages.txt
Você verá uma lista de alunos com suas respectivas idades, assim:
David Lee:21
Alice Johnson:18
Charlie Brown:19
Bob Smith:20
Eve Wilson:18
Para ordenar esta lista por idade, usaremos a opção -n, que instrui o sort a tratar os números como valores numéricos em vez de strings:
sort -n -t: -k2 ~/project/student_ages.txt
Vamos detalhar este comando:
-n: Esta opção diz aosortpara realizar uma ordenação numérica.-t:: Especifica que os campos são separados por dois-pontos.-k2: Indica aosortpara usar o segundo campo (a idade) como a chave de ordenação.
Isso exibirá a lista de alunos ordenada do mais novo para o mais velho:
Alice Johnson:18
Eve Wilson:18
Charlie Brown:19
Bob Smith:20
David Lee:21
Sem a opção -n, o sort trataria as idades como strings, o que poderia levar a uma ordem incorreta (como 18, 19, 20, 21, 3). A opção -n garante a ordenação numérica correta.
Ordenação Reversa de Notas de Alunos
Agora, vamos ordenar as notas dos alunos em ordem decrescente. Isso é frequentemente usado para classificar alunos ou identificar os melhores desempenhos.
Primeiro, visualize a lista atual:
cat ~/project/student_grades.txt
Você deve ver algo assim:
David Lee:87
Alice Johnson:92
Charlie Brown:95
Bob Smith:88
Eve Wilson:91
Para ordenar as notas da maior para a menor, usaremos a opção -r para ordem reversa, junto com -n para ordenação numérica:
sort -nr -t: -k2 ~/project/student_grades.txt
Aqui está o que cada parte do comando faz:
-n: Realiza uma ordenação numérica.-r: Inverte a ordem de classificação (decrescente em vez de crescente).-t:: Especifica que os campos são separados por dois-pontos.-k2: Usa o segundo campo (a nota) como chave de ordenação.
Este comando exibirá as notas dos alunos da maior para a menor:
Charlie Brown:95
Alice Johnson:92
Eve Wilson:91
Bob Smith:88
David Lee:87
A opção -r é particularmente útil quando você deseja ver os valores mais altos primeiro, o que é comum em muitos cenários reais, como rankings, identificação de destaques ou priorização de tarefas.
Ordenando Registros de Alunos por Múltiplos Campos
Nesta etapa, vamos ordenar um registro de aluno mais complexo que inclui nome, idade e nota. Este é um cenário comum ao lidar com bancos de dados estudantis abrangentes.
Primeiro, vamos olhar nossos dados:
cat ~/project/student_records.txt
Você verá que cada linha contém o nome, a idade e a nota de um aluno, separados por dois-pontos, desta forma:
David Lee:21:87
Alice Johnson:18:92
Charlie Brown:19:95
Bob Smith:20:88
Eve Wilson:18:91
Para ordenar este arquivo por idade (segundo campo) e depois por nota (terceiro campo) caso as idades sejam iguais, usaremos:
sort -t: -k2n -k3nr ~/project/student_records.txt
Aqui está o significado de cada parte do comando:
-t:especifica que os campos são separados por dois-pontos.-k2nordena com base no segundo campo (idade) de forma numérica.-k3nrem seguida, ordena com base no terceiro campo (nota) de forma numérica e em ordem reversa.
Isso exibirá os registros dos alunos ordenados primariamente por idade (crescente) e secundariamente por nota (decrescente) quando as idades forem as mesmas:
Alice Johnson:18:92
Eve Wilson:18:91
Charlie Brown:19:95
Bob Smith:20:88
David Lee:21:87
Este tipo de ordenação com múltiplas chaves é extremamente útil quando você precisa organizar dados com base em vários critérios. Neste caso, estamos agrupando alunos por idade e, dentro de cada grupo de idade, classificando-os por suas notas.
Removendo Entradas Duplicadas
Às vezes, os registros de alunos podem conter duplicatas, talvez devido a erros de digitação ou múltiplos envios. Vamos aprender como remover essas duplicatas.
Primeiro, vamos olhar um arquivo com possíveis duplicatas:
cat ~/project/student_clubs.txt
Você pode ver algo assim:
Alice Johnson:Chess Club
Bob Smith:Debate Team
Charlie Brown:Chess Club
David Lee:Science Club
Eve Wilson:Debate Team
Alice Johnson:Chess Club
Bob Smith:Science Club
Para ordenar esta lista e remover as duplicatas, usaremos a opção -u:
sort -u ~/project/student_clubs.txt
Este comando exibirá uma lista ordenada de participações únicas em clubes estudantis:
Alice Johnson:Chess Club
Bob Smith:Debate Team
Bob Smith:Science Club
Charlie Brown:Chess Club
David Lee:Science Club
Eve Wilson:Debate Team
A opção -u (unique) instrui o sort a produzir apenas a primeira ocorrência de uma sequência de linhas iguais. Em outras palavras, ele remove linhas duplicadas após a ordenação. Isso é particularmente útil quando você precisa criar uma lista de entradas exclusivas ou quando está tentando identificar e eliminar dados redundantes.
Note que "Bob Smith" aparece duas vezes porque ele está em dois clubes diferentes — essas linhas não são consideradas duplicadas, pois o conteúdo total da linha é diferente.
Resumo
Neste laboratório, você aprendeu como usar o comando sort para organizar vários tipos de dados de alunos. Você explorou diversas opções úteis:
- Ordenação alfabética básica
- Ordenação numérica com
-n - Ordenação reversa com
-r - Ordenação por múltiplos campos com
-k - Uso de separadores de campo personalizados com
-t - Remoção de duplicatas com
-u
Outras opções úteis do sort incluem:
-f: Ignorar a diferença entre maiúsculas e minúsculas ao ordenar-b: Ignorar espaços em branco no início da linha-c: Verificar se a entrada já está ordenada-o: Gravar a saída em um arquivo em vez da saída padrão (terminal)
Essas habilidades serão valiosas ao gerenciar e analisar dados em diversos contextos profissionais, não apenas em ambientes educacionais.



