Foros del Web » Administración de Sistemas » Unix / Linux »

Tratar salida de un comando al vuelo en "tiempo real"

Estas en el tema de Tratar salida de un comando al vuelo en "tiempo real" en el foro de Unix / Linux en Foros del Web. Hola Tengo un comando que tarda bastante y que según va ejecutandose va echando lineas a la salida estandar dando información La mayoria de esta ...
  #1 (permalink)  
Antiguo 17/12/2013, 08:29
 
Fecha de Ingreso: marzo-2005
Mensajes: 47
Antigüedad: 19 años
Puntos: 0
Pregunta Tratar salida de un comando al vuelo en "tiempo real"

Hola

Tengo un comando que tarda bastante y que según va ejecutandose va echando lineas a la salida estandar dando información

La mayoria de esta info me es irrelevante pero me viene bien para saber que el comando no se ha quedado tostado y si esta haciendo cosas.

Entonces me gustaría hacer una pipe que redirija la salida y por cada linea irrelevante que escupe el comando original me escriba un "." y por cada una que si me interese si me la muestre

Por ejemplo, seria algo asi:

comando | mi_script
................................
blablabla relevante
........................
blabla relevante 2
...........
FIN

siendo mi_script algo que le llega cada linea que escupe el comando y según unos if/else hace un print/echo "." o un print/echo "\n" + linea + "\n"

La cuestión es que parece que el comportamiento del pipe es que espera a que se ejecute el comando del todo y luego le pasa su salida a mi_script, de manera que aunque al final sale lo mismo no tengo el efecto de que vayan saliendo los puntos y los mensajes en tiempo real, si no que sale todo junto al final.

¿Como puedo hacer que quiero?

Gracias por adelantado.
__________________
Visita www.GranFuckultad.tk y goza de risa
  #2 (permalink)  
Antiguo 18/12/2013, 10:04
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Tratar salida de un comando al vuelo en "tiempo real"

Prueba stdbuf, como se menciona aquí junto con otras opciones: http://unix.stackexchange.com/questi...fering-in-pipe. Con ese programa puedes ajustar el buffering para que sea línea a línea, luego con sed podrías lograr la sustitución de la línea por un punto.


Saludos.

Etiquetas: comando, salida, tiempo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:00.