Vários comandos grep com ordenação

1

Eu tenho um arquivo de texto contendo uma lista de notas dos alunos:

Andrew cooking A
Andrew cooking B
Andrew computing F
Steven java C
Steven python E
Ben C++ D
Ben python C
Jamie java E
Jamie C++ E
Jamie C++ B
Jamie python E
Gerry python E
Phil python F

Estou tentando usar o comando grep para mostrar todos os resultados do python, classificados da melhor para a pior nota. O arquivo é chamado a.txt . Eu tentei grep python a.txt | sort -d que não funciona, então eu estava procurando por um pouco de ajuda sobre isso. Obrigado

    
por niall watson 06.02.2015 / 03:22

2 respostas

1

Use esse comando:

awk '$2=="python"{print}' a.txt | sort -dk3

Se o segundo campo for python , imprima a linha inteira e deixe sort no terceiro campo.

    
por 06.02.2015 / 08:59
1

Se você não estiver familiarizado com awk , poderá achar a seguinte solução mais fácil de entender:

grep "python" a.txt | sort -dk 3 | cut -d " " -f 1,3
  • grep seleciona linhas que contêm determinada palavra

  • sort está classificando em ordem decrescente com base na terceira chave

  • cut está se livrando da palavra 'python'. Se estiver aparecendo em todas as linhas, não traz nenhuma informação para a foto.

Resultado:

Ben C
Gerry E
Jamie E
Steven E
Phil F
    
por 06.02.2015 / 09:33