[eside-ghost] Bash - Filtrando salida de proceso mientras se guarda en variable

Bruno Gonzalez stenyak en gmail.com
Mie Ago 1 11:47:42 CEST 2012


Esto debería funcionar más o menos. Ándate con ojo de usar echo vs
printf, que a algunos les mola meter saltos de línea cuando no se les
pide, etc etc (eso si necesitas que el stream de texto pase 100%
intacto).

También ten en cuenta que solo se gestiona stdout (no stderr), y
además creo que no era técnicamente posible pipear ambas salidas a la
vez con bash. La última vez que me metí en berenjenales de este tipo
hace un par de años, tuve que tirar de ksh para solucionarlo...


output=""
while read line
do
    printf "$line\n"
    output="$output\n$line"
done
#after EOS
printf $output #or whatever


2012/8/1 Jon Valdés <juanval en gmail.com>:
> Buenas a todos,
>
> Ando haciendo conjuros con Bash, y necesito una cosa un poco rara.
> Necesito que la salida de un comando vaya saliendo en tiempo real por
> consola mientras se almacena en una variable de bash. La idea es,
> cuando termine el comando, sacar un resumen de todo lo que ha salido,
> filtrando esa salida con un grep.
>
> Vamos, algo como esto:
>
>    output=`comando.sh`
>    echo $output | grep "***"
>
> Pero haciendo que la salida de output vaya saliendo en tiempo real por
> stdout a la vez que se guarda en $output.
>
> Lo único que se me ha ocurrido es tirar de "tee", pero preferiría no
> tener que usar un archivo temporal si es posible.
>
> ¿Alguna idea?
>
> Enga, muchas gracias!!
> _______________________________________________
> eside-ghost mailing list
> eside-ghost en listas.deusto.es
> https://listas.deusto.es/mailman/listinfo/eside-ghost



-- 
Saludos,
     Bruno González

_______________________________________________
Jabber: stenyak AT gmail.com
http://www.stenyak.com


Más información sobre la lista de distribución eside-ghost