[eside-ghost] Bash - Filtrando salida de proceso mientras se guarda en variable
Jon Valdés
juanval en gmail.com
Mie Ago 1 12:11:40 CEST 2012
2012/8/1 Bruno Gonzalez <stenyak en gmail.com>:
> Uhmm... por si no es muy obvio, se me ha olvidao decir que ese script
> toma como input a stdout. Es decir lo guardas como "filter.sh", y
> luego lo usas tal que:
> $ comando.sh | ./filter.sh > /tmp/passthrough_del_stdout.txt
Si, lo había deducido :)
Eso sí, no se me había ocurrido esta técnica. Estaba intentando
hacerlo todo en el propio script y no encontraba la forma.
Muchas gracias por la idea! :)
> 2012/8/1 Bruno Gonzalez <stenyak en gmail.com>:
>> 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
>
>
>
> --
> Saludos,
> Bruno González
>
> _______________________________________________
> Jabber: stenyak AT gmail.com
> http://www.stenyak.com
> _______________________________________________
> eside-ghost mailing list
> eside-ghost en listas.deusto.es
> https://listas.deusto.es/mailman/listinfo/eside-ghost
Más información sobre la lista de distribución eside-ghost