
removido
(usa Nenhuma)
Enviado em 22/03/2011 - 17:30h
Eu preciso filtrar a saída de erro do comando ls, com o comando grep, e que, ao final, o comando retorne (imprima na tela): a saída padrão; a saída de erro filtrada; e a saída de erro original, veja:
ls $local 2>&1 | cut -d":" -f2
Assim, o que retornará (será impresso na tela), vai ser o resultado da filtragem da saída padrão (stdout) com a saída de erro (stderr); mas a saída de erro original e a saída padrão original não serão impressas.
Caso eu faça o seguinte comando:
ls $local 2>&1 1>$3 | cut -d":" -f2
Eu vou passar a saída padrão para uma saída provisória de número 3. Assim, ao término da execução, a minha função irá retornar a saída de erro filtrada e a saída padrão.
Como eu posso fazer para que eu imprima a saída de erro filtrada, a saída de erro original e a saída padrão?
======
Já tentei comandos como:
exec 3<&2
ls $local 3>&1 1>$4 | cut -d":" -f2
e:
ls $local 3>&1 1>&2 2>&3 | cut -d":" -f2
Todos só imprimem a saída padrão e a de erro filtrada (a de erro original não). O que quero realmente é algo como duplicar a saída de erro e filtrar uma de suas cópias, mantendo na outra cópia, a saída de erro original.