7 Exemplos Interessantes do Comando ‘sort’ no Linux – Parte 2

No nosso último artigo, cobrimos vários exemplos do comando ‘sort‘. Se você perdeu, pode se atualizar seguindo o link abaixo. Neste post, continuaremos de onde paramos no artigo anterior, para cobrir os aspectos restantes do comando. Desta forma, ambos os artigos juntos servirão como um guia abrangente para o comando ‘sort‘ do Linux.

Antes de prosseguirmos, por favor, crie um arquivo de texto chamado ‘month.txt‘ e preencha-o com os dados fornecidos abaixo.

echo -e "mar\ndec\noct\nsep\nfeb\naug" > month.txt
cat month.txt

15. Ordenando o Conteúdo do Arquivo por Mês

O seguinte comando ordena o conteúdo do arquivo “month.txt” em ordem cronológica com base na abreviação ou nome do mês, usando a opção '-M' que instrui o comando ‘sort‘ a tratar os dados como datas e ordená-los de acordo.

sort -M month.txt

16. Ordenando a Saída por Tamanho de Arquivo em Formato Legível

O seguinte comando combina os comandos ‘ls‘ e ‘sort‘ para realizar duas tarefas. Primeiro, lista o conteúdo do diretório inicial do usuário em formato longo e, em seguida, encaminha essa lista de diretórios para o comando ‘sort’ para imprimir os tamanhos dos arquivos em um formato legível, facilitando a identificação dos maiores e menores arquivos no diretório.

ls -l /home/$USER | sort -h -k5

17. Verificando Arquivos Ordenados para Consistência

No artigo anterior, geramos dois arquivos de texto: ‘sorted.txt‘ no exemplo número 4 e ‘lsl.txt‘ no exemplo número 6. Estamos cientes de que ‘sorted.txt‘ já está ordenado, enquanto ‘lsl.txt‘ não está.

Para verificar o status de ordenação de ambos os arquivos, vamos utilizar o comando ‘sort‘, que nos permitirá confirmar se ‘sorted.txt‘ permanece na ordem correta e se ‘lsl.txt‘ requer ordenação.

sort -c sorted.txt

Se retornar 0, significa que o arquivo está ordenado e não há conflito.

sort -c lsl.txt

18. Manipulação de Delimitadores Quando Não Usando Espaços no Arquivo

Se o delimitador (separador) entre palavras for um espaço, o comando ‘sort‘ interpreta automaticamente qualquer coisa após um espaço horizontal como uma nova palavra. Mas o que acontece quando o delimitador não é um espaço?

Considere um arquivo de texto, cujos conteúdos são separados por qualquer coisa que não seja espaço como '|' ou '\' ou '+' ou '.' ou ...</code.

Crie um arquivo de texto onde os conteúdos são separados por +. Use o comando cat para verificar os conteúdos do arquivo.

echo -e "21+linux+server+production\n11+debian+RedHat+CentOS\n131+Apache+Mysql+PHP\n7+Shell Scripting+python+perl\n111+postfix+exim+sendmail" > delimiter.txt
$ cat delimiter.txt

Agora ordene este arquivo com base no campo que é numérico.

sort -t '+' -nk1 delimiter.txt

O segundo é baseado no campo que é não numérico.

Se o delimitador for Tab, você pode usar $'\t' no lugar de '+', como mostrado no exemplo acima.

19. Ordenando Aleatoriamente a Saída por Tamanho do Arquivo

Ordene a saída do comando ls -l para seu diretório home com base na quinta coluna, que representa a ‘quantidade de dados’, em ordem aleatória.

ls -l /home/avi/ | sort -k5 -R 

Toda vez que você executar o trecho de script acima, provavelmente obterá um resultado diferente, pois o resultado é gerado aleatoriamente.

Como evidente da Regra número – 2 do último artigo, o comando sort prefere linhas que começam com caracteres minúsculos em vez de maiúsculos. Também verifique o exemplo 3 no último artigo, onde a string ‘laptop‘ aparece antes da string ‘LAPTOP‘.

20. Substituindo as Preferências Padrão de Classificação

Como substituir a preferência padrão de classificação? Antes de podermos substituir a preferência padrão de classificação, precisamos exportar a variável de ambiente 'LC_ALL' para 'C'.

Para fazer isso, execute o código abaixo em seu prompt de comando.

export LC_ALL=C

E então ordene o arquivo de texto ‘tecmint.txt‘ substituindo a preferência de classificação padrão.

$ sort tecmint.txt

Não se esqueça de comparar a saída com aquela que você obteve no exemplo 3 e você também pode usar a opção ‘-f‘, também conhecida como ‘--ignore-case‘, para obter uma saída mais organizada.

$ sort -f tecmint.txt

21. Combinando Dois Arquivos de Entrada em uma Única Operação

E se executarmos o ‘sort‘ em dois arquivos de entrada e os unirmos de uma vez?

Vamos criar dois arquivos de texto, nomeadamente ‘arquivo1.txt‘ e ‘arquivo2.txt‘, e preenchê-los com alguns dados. No ‘arquivo1.txt‘, adicionaremos números como mostrado abaixo. Também usaremos o comando cat para inspecionar o conteúdo do arquivo

echo -e “5 Reliable\n2 Fast\n3 Secure\n1 open-source\n4 customizable” > file1.txt
cat file1.txt

E preencheremos o segundo arquivo ‘arquivo2.txt‘ com alguns dados também.

echo -e “3 RedHat\n1 Debian\n5 Ubuntu\n2 Kali\n4 Fedora” > file2.txt
cat file2.txt

Agora, ordene e una a saída de ambos os arquivos.

join <(sort -n file1.txt) <(sort file2.txt)

Conclusão

Em conclusão, este artigo explorou vários aspectos do comando ‘sort‘ no Linux. Começamos com a ordenação básica por ordem alfabética, aventuramo-nos na ordenação numérica e baseada em datas, e até abordamos delimitadores personalizados. Também aprendemos como substituir preferências de ordenação padrão para atender às nossas necessidades.

Além disso, discutimos técnicas para verificar se um arquivo já está ordenado e combinamos operações ‘sort‘ para vários arquivos de entrada. Com o conhecimento adquirido aqui, você tem uma ferramenta poderosa à sua disposição para ordenar e organizar dados eficientemente em um ambiente Linux.

Esperamos que este artigo tenha sido esclarecedor e útil para suas empreitadas na linha de comando. Continue explorando, aprendendo e dominando a arte do ‘sort‘ para aprimorar suas habilidades no Linux.

Source:
https://www.tecmint.com/linux-sort-command-examples/