Como classifico usando os comandos grep e sort?

Como classifico usando os comandos grep e sort?

Gostaria de criar uma lista ordenada de todos os serviços TCP encontrados no arquivo /etc/services, canalizar a saída do comando grep tcp /etc/servicespara o comando sorte, em seguida, redirecionar a saída desse canal para o arquivo ~/pipelab.txt.

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

Isto é o que tentei por último:

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

Responder1

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

Em vez disso, você realmente deseja apenas alimentá-lo para classificar:

grep tcp /etc/services | sort

e então você deseja redirecionar oclassificadosaída (ou seja, o que está fora de ordem) para um arquivo, então você coloca o redirecionamento após a classificação:

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

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

Responder2

> ~/pipelab.txtobviamente pertence ao comando do mesmo lado do operador de pipeline |. Ou seja, você redireciona a grepsaída para o arquivo em vez de canalizá-la para sort:

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

informação relacionada