• Publicidad

Nombre de fichero por STDIN

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Nombre de fichero por STDIN

Notapor aLiSH » 2007-12-20 10:42 @487

Hola a todos,

Mi duda es muy sencilla pero no consigo encontrar información sobre ello.

Tengo un pipe en Linux en el que el fichero de salida del primer programa es el fichero de entrada del segundo programa y necesito conocer el nombre de ése fichero en el segundo programa para añadirle unas cosas. La cuestión es que el nombre de ése archivo es variable y lo crea el primer programa, entonces no lo conozco.

¿Hay alguna forma de obtener el nombre del fichero que se pasa por stdin?

Un saludo y gracias de antemano.
aLiSH
Perlero nuevo
Perlero nuevo
 
Mensajes: 18
Registrado: 2007-05-08 05:57 @290

Publicidad

Notapor Norther » 2007-12-20 11:46 @532

¿Podrías dar algún detalle mas? La verdad no entiendo muy bien lo que quieres hacer, así tal vez podría intentar ayudarte un poco mientras llega el todopoderoso explorer para darte la solución :p
Norther
Perlero nuevo
Perlero nuevo
 
Mensajes: 117
Registrado: 2007-07-24 13:47 @616
Ubicación: Asturias

Notapor explorer » 2007-12-20 12:23 @557

Normalmente una 'pipe' es algo como esto:

Sintáxis: [ Descargar ] [ Ocultar ]
Using bash Syntax Highlighting
$ programa1 | programa2
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


De esta forma, la salida estándar del primer programa se pasa a la entrada estándar del segundo programa. Así no es necesario crear un fichero externo para intercambiar información entre los programas.

El problema aparece si, además de la salida estándar, el primer programa genera más información en otro sitio, como por ejemplo, otro fichero en el directorio.

Bueno, si el nombre de ese fichero es variable, el segundo programa no podrá localizarlo salvo que tenga algunas pistas de él... por ejemplo:

* es el último fichero creado en el directorio, por lo que solo tiene que mirar entre todos cuál es el más moderno
* si su nombre es variable, pero predecible, entonces también es fácil de encontrar si las reglas de construcción del nombre son conocidas. Es el caso de los nombres de ficheros que incorporan una fecha o un contador

Finalmente, sí que es posible que el primer programa le pase la información al segundo programa, por la misma salida-entrada estándar, siempre que el segundo programa sepa distinguir lo que recibe.

Ejemplo: el primer programa envía toda la información al segundo programa usando la tubería (pipe), y, la última línea que le envía, es el nombre del fichero externo que ha creado. El segundo fichero sabe que tiene que procesar todo lo que recibe excepto esa última línea, que la tiene que tomar como el nombre de un fichero.

Todo es cuestión del protocolo (-ponerse de acuerdo-).
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 9 invitados