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.