Quiero redirigir el stdout y el stderr de una secuencia tanto a la pantalla como a un archivo. Para eso estoy usando la tee herramientas. Sin embargo, antes de que ese flujo vaya al archivo, quiero transformarlo usando una canalización. Hasta ahora, solo he logrado transformar el flujo que va a la salida estándar.
Ejemplo:
echo 'hello' | tee output.txt | tr 'h' 'e'
=> esto generará eello en stdout y guardará hello en output.txt
Sin embargo, lo que quiero es imprimir hello en stdout y guardar eello en output.txt.
Nota: cambiar el flujo de entrada no es una opción para mi problema.
Con bash :
echo 'hello' | tee >(tr 'h' 'e' > output.txt) Con bash y Linux:
echo 'hello' | tee /proc/$$/fd/255 | tr 'h' 'e' > output.txtVer: ¿Cuál es el uso del descriptor de archivo 255 en el proceso bash?
Puedes hacer eso en un solo awk sin múltiples tuberías:
echo 'hello' | awk '1; {gsub(/h/, "e"); print > "output.txt"}'