Portanto, se você quiser usar a saída lscomo entrada em dois grepprogramas diferentes , salve a saída de cada um grepem arquivos diferentes e canalize todos os resultados less, tente:
ls -A | tee >(grep ^[.]> hidden-files)>(grep -v ^[.]> normal-files)| less
Os resultados do ls -Aserão "canalizados" em ambos os greps. O arquivo hidden-filesterá o conteúdo da saída do primeiro grepe normal-filesos resultados do segundo grep. Todos os arquivos serão mostrados no pager less.EDIT : o que você vê lessé a mesma saída exata de ls -A, não o resultado dos greps. Se você deseja modificar a saída de ls -Apara 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 greps seria anexada à saída em ls -Avez de substituí-la.
Isso enviará a saída do comando grep para o terminal e para o wc (cuja saída é, por sua vez, redirecionada para o arquivo grepresult).
"Tee" é explicado no artigo da Wikipedia tee (comando) . O ponto central é: "O comando tee lê a entrada padrão, depois grava seu conteúdo na saída padrão e o copia simultaneamente no (s) arquivo (s) ou variáveis especificados".
Respostas:
Parece que o
tee
comando fará o que você deseja.A chave é usar
para substituição de processo . Com
tee
, use o seguinte padrão:Portanto, se você quiser usar a saída
ls
como entrada em doisgrep
programas diferentes , salve a saída de cada umgrep
em arquivos diferentes e canalize todos os resultadosless
, tente:Os resultados do
ls -A
serão "canalizados" em ambos osgrep
s. O arquivohidden-files
terá o conteúdo da saída do primeirogrep
enormal-files
os resultados do segundogrep
.Todos os arquivos serão mostrados no pagerEDIT : o que você vêless
.less
é a mesma saída exata dels -A
, não o resultado dosgrep
s. Se você deseja modificar a saída dels -A
paraless
, (por exemplo, trocando a ordem para que os arquivos normais sejam listados antes dos ocultos), tente o seguinte:Sem
>/dev/null
, a saída degrep
s seria anexada à saída emls -A
vez de substituí-la.fonte
fonte
Use "tee".
Exemplo:
Isso enviará a saída do comando grep para o terminal e para o wc (cuja saída é, por sua vez, redirecionada para o arquivo grepresult).
"Tee" é explicado no artigo da Wikipedia tee (comando) . O ponto central é: "O comando tee lê a entrada padrão, depois grava seu conteúdo na saída padrão e o copia simultaneamente no (s) arquivo (s) ou variáveis especificados".
fonte