Parece que o comando tee
fará o que você quer.
A chave é usar
>( )
para a substituição de processos . Com tee
, use o seguinte padrão:
tee >(proc1) >(proc2) >(proc3) | proc4
Portanto, se você quiser usar a saída de ls
como entrada para dois programas grep
diferentes, salve a saída de cada grep
em arquivos diferentes e canalize todos os resultados por less
, tente:
ls -A | tee >(grep ^[.] > hidden-files) >(grep -v ^[.] > normal-files) | less
Os resultados do ls -A
serão "canalizados" para ambos os grep
s. O arquivo hidden-files
terá o conteúdo da saída do primeiro grep
e normal-files
terá os resultados do segundo grep
. Todos os arquivos serão mostrados no pager EDITAR : o que você vê em less
. less
é a mesma saída exata de ls -A
, não o resultado de grep
s. Se você quiser modificar a saída de ls -A
para less
(por exemplo, trocando a ordem para que os arquivos normais sejam listados antes dos ocultos), tente o seguinte:
ls -A | tee >(grep ^[.]) >(grep -v ^[.]) >/dev/null | less
Sem >/dev/null
, a saída de grep
s seria anexada à saída de ls -A
em vez de substituí-la.