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

Meter script bash entre pipes (tuberías)

Estas en el tema de Meter script bash entre pipes (tuberías) en el foro de Unix / Linux en Foros del Web. Necesito colocar un script propio entre las llamadas de unos programas mediante pipe . La idea sería la siguiente: Supongamos: Código: ls | grep algo ...
  #1 (permalink)  
Antiguo 12/06/2009, 17:47
Avatar de reyesoft  
Fecha de Ingreso: abril-2006
Ubicación: San Rafael, Mendoza
Mensajes: 311
Antigüedad: 18 años, 7 meses
Puntos: 15
Meter script bash entre pipes (tuberías)

Necesito colocar un script propio entre las llamadas de unos programas mediante pipe. La idea sería la siguiente:

Supongamos:
Código:
ls | grep algo
Esto va a retornar todos los archivos que tengan "algo", pero ahora supongamos:
Código:
ls | ./miscript.sh | grep algo
¿Qué debería contener el archivo miscript.sh para que eso siga funcionado como si no estuviera?

Muchas gracias...
__________________
Pablo Reyes

Compra/venta saldos PayPal, Skrill, Neteller, Bitcoins, etc.
  #2 (permalink)  
Antiguo 13/06/2009, 17:39
Avatar de arthpix  
Fecha de Ingreso: diciembre-2003
Ubicación: Cancún
Mensajes: 2.340
Antigüedad: 20 años, 11 meses
Puntos: 93
Respuesta: Meter script bash entre pipes (tuberías)

No entiendo muy bien la pregunta. Pero si lo estás tratando de correr con tuberías creo que te sobra una "|"

$ ls ./miscript.sh | grep algo

ahh! y por cierto, ¿ya le asignaste permisos de ejecución al script?
__________________
Antes de hacer rabietas infórmate: Linux != Windows
  #3 (permalink)  
Antiguo 13/06/2009, 18:38
Avatar de reyesoft  
Fecha de Ingreso: abril-2006
Ubicación: San Rafael, Mendoza
Mensajes: 311
Antigüedad: 18 años, 7 meses
Puntos: 15
Respuesta: Meter script bash entre pipes (tuberías)

Cita:
Iniciado por arthpix Ver Mensaje
No entiendo muy bien la pregunta. Pero si lo estás tratando de correr con tuberías creo que te sobra una "|"

$ ls ./miscript.sh | grep algo
No, no sobra, precisamente es lo que quiero hacer. Sé que no tiene mucho sentido el ejemplo, pero es así por un sentido práctico.

Cita:
Iniciado por arthpix Ver Mensaje
ahh! y por cierto, ¿ya le asignaste permisos de ejecución al script?
Por supuesto que sí, chmod +x miscript.sh ;)

Igualmente muchísimas gracias por interesarte, pero ¿Alguna otra idea?
__________________
Pablo Reyes

Compra/venta saldos PayPal, Skrill, Neteller, Bitcoins, etc.
  #4 (permalink)  
Antiguo 14/06/2009, 12:00
Avatar de AleSanchez
Colaborador
 
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires, Argentina
Mensajes: 3.692
Antigüedad: 20 años, 2 meses
Puntos: 47
Respuesta: Meter script bash entre pipes (tuberías)

Es que no se entiende lo que querés hacer.

En tu ejemplo:
Código bash:
Ver original
  1. ls | ./miscript.sh | grep algo
La salida de ls, va a tomarla tu script, y luego la salida de tu script, va a ser filtrada por grep.
Me parece que no es eso lo que quieres hacer.
Supongo que debería ser algo como:
Código bash:
Ver original
  1. ls  | grep algo | ./miscript.sh
Para que tu script tome esa salida, la procese como quiera y luego la vuelva a mostrar enviándola a stdout.

Si es que esntendí bien...
__________________
¡Volviendo a la programación!
  #5 (permalink)  
Antiguo 14/06/2009, 12:30
Avatar de reyesoft  
Fecha de Ingreso: abril-2006
Ubicación: San Rafael, Mendoza
Mensajes: 311
Antigüedad: 18 años, 7 meses
Puntos: 15
Desacuerdo Respuesta: Meter script bash entre pipes (tuberías)

Cita:
Iniciado por AleSanchez Ver Mensaje
Es que no se entiende lo que querés hacer.

En tu ejemplo:
Código bash:
Ver original
  1. ls | ./miscript.sh | grep algo
La salida de ls, va a tomarla tu script, y luego la salida de tu script, va a ser filtrada por grep.
Me parece que no es eso lo que quieres hacer.
Supongo que debería ser algo como:
Código bash:
Ver original
  1. ls  | grep algo | ./miscript.sh
Para que tu script tome esa salida, la procese como quiera y luego la vuelva a mostrar enviándola a stdout.

Si es que esntendí bien...
Lo siento pero no se puede moficiar
Código bash:
Ver original
  1. ls | ./miscript.sh | grep algo

Sólo se tiene acceso a miscript.sh. Sé que no tiene lógica, pero lo he presentado así por cuestiones prácticas, no tiene sentido traer todo el problema que tengo del por qué no puedo modifcarlo.

Sólo necesitaría saber que habría que colocar en miscript.sh para que el ejemplo siga funcionando. Comprendo que lo que debería hacer es tomar el stdin y sacarlo por stdout, ¿pero como se hace?

Un saludo...
__________________
Pablo Reyes

Compra/venta saldos PayPal, Skrill, Neteller, Bitcoins, etc.
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 08:24.