Como classifico usando os comandos grep e sort?

9

Eu gostaria de criar uma lista classificada de todos os serviços TCP encontrados no arquivo /etc/services , canalizar a saída do comando grep tcp /etc/services para o comando sort e redirecionar a saída desse canal para o arquivo ~/pipelab.txt .

Continuo recebendo uma mensagem de erro dizendo que minha saída está errada e não sei por quê.

Isso é o que tentei por último:

grep tcp /etc/services > ~/pipelab.txt | sort
    
por user72510 20.06.2014 / 18:50

2 respostas

6

> ~/pipelab.txt obviamente pertence ao comando no mesmo lado do operador do pipeline | . Ou seja você redireciona a saída grep para o arquivo em vez de colocá-lo em sort :

grep tcp /etc/services | sort > ~/pipelab.txt
    
por 20.06.2014 / 18:58
16

Você está tentando redirecionar a saída de grep para um arquivo e para sort . Você não pode fazer isso, pelo menos não assim.

Em vez disso, você só quer alimentá-lo para classificar:

grep tcp /etc/services | sort

e, em seguida, você deseja redirecionar a saída classificada (ou seja, o que está saindo da classificação) para um arquivo, para que você coloque o redirecionamento após a ordenação:

grep tcp /etc/services | sort > ~/pipelab.txt

Ambos os pipes e redirecionamentos funcionam alterando para onde vai a saída do comando. Você teve dois deles brigando pela saída de grep (e, finalmente, o redirecionamento ganhou, e escreveu a saída não classificada em seu arquivo).

    
por 20.06.2014 / 18:59

Tags