Há um erro de digitação no seu código de exemplo que eu acabei de abordar primeiro. filename | ...
não fará nada além de soltar um erro e depois confundir a coisa do outro lado do pipe ... a menos que esse nome de arquivo também seja um executável global e então não esteja fazendo o que você queria.
Você precisaria de cat filename | ...
.
Apenas para turvar as águas, sort
também pode usar um nome de arquivo como argumento. Você poderia (e deveria, se este é o seu caso de uso real) apenas executar sort filename > sortedfilename
.
De qualquer forma, voltemos a redirecionamentos ...
O redirecionamento de entrada ( <
) lê um arquivo e canaliza para stdin
. Para responder à sua pergunta, é diretamente equivalente a cat filename |
.
O comando sort
procura por stdin
em vez de um argumento de nome de arquivo e faz a classificação e direciona para stdout
. O redirecionamento de saída ( >
) pode ser usado para enviar isso para um arquivo em vez da tela.
Se você realmente quiser surpreender, leia o capítulo sobre o redirecionamento de E / S do TLDP