Article View: es.comp.os.linux.programacion
Article #15075Re: Leer líneas de un fichero
From: Trigo
Date: Tue, 15 Aug 2000 00:00
Date: Tue, 15 Aug 2000 00:00
74 lines
2976 bytes
2976 bytes
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
>>>>> "Oscar" == Oscar Manuel <oscar@omgs.es> writes:
Hola.
[...]
Oscar> Obviamente, quiero leer todas las l�neas generadas, pero
Oscar> para probar he querido leer la primera l�nea y almacenarla
Oscar> en $linea, pero me sale en blanco. Una vez conseguido esto,
Oscar> pretendo hacer un bucle para leer l�nea a l�nea, tratar los
Oscar> resultados y leer la siguiente l�nea, pero tampoco s� c�mo
Oscar> controlar el fin de fichero.
La verdad es que no he conseguido hacerlo con "read".
Hay otra forma bastante sencilla. Siempre que quiero tratar ficheros
con datos, uso "awk". Creo que es una de las ordenes m�s �tiles del
shell. Al grano, sup�n que tenemos un fichero p1 con contenido:
hola 1
adios 2
y queremos ejecutar una orden "echo" sobre cada linea de p1, separando
los argumentos (creo que es un caso general de lo que quieres hacer).
Las siguientes lineas
awk '//{printf ("echo arg 1: %s arg 2: %s\n", $1 , $2) } ' >./kk <p1
source ./kk
producir�n la salida :
arg 1: hola arg 2: 1
arg 1: adios arg 2: 2
La orden "awk" est� generando un fichero temporal llamado "kk", que
contiene exactamente las ordenes que queremos ejecutar,
echo arg 1: linea arg 2: 1
echo arg 1: linea arg 2: 2
... ,y la llamada a "source" ejecuta el fichero que acabas de crear.
Oscar> 1) Esto es por simple curiosidad �Se pueden especificar dos
Oscar> (o m�s) shells en un mismo script? Ejemplo:
Oscar> #!/bin/bash
Oscar> ...
Oscar> #!/usr/bin/perl
Oscar> ...
As� no lo he visto nunca, pero nada te impide llamar a otro shell
pasandole las ordenes que quieres ejecutar:
#!/usr/bin/perl
...
/bin/bash -c "echo hola"
...
(Es un poco m�s chapucero de lo que ped�as)
Saludos.
- --
Jos� S�nchez Trigo
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.1 (GNU/Linux)
Comment: Processed by Mailcrypt 3.5.5 and Gnu Privacy Guard <http://www.gnupg.org/>
iD8DBQE5mc6SygHJugZwY3QRAqx8AKCaHrx5u35fCD8cc73YyGu9J6ckTACgn8iN
NERpdaSpi2rXifELejk7bGg=
=Ewm3
-----END PGP SIGNATURE-----
Technical Details
Message-ID:
<871yzqxgmf.fsf@avatar.micasa>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<39999EE1.BFBF9AE4@omgs.es>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: f86c8,1acfdd076705ea7c X-Google-Attributes: gidf86c8,public From: Trigo <jh12414@autovia.com> Subject: Re: Leer líneas de un fichero Date: 2000/08/15 Message-ID: <871yzqxgmf.fsf@avatar.micasa> X-Deja-AN: 658715334 Content-Transfer-Encoding: 8bit Sender: jose@avatar.micasa References: <39999EE1.BFBF9AE4@omgs.es> Content-Type: text/plain; charset=iso-8859-1 X-Complaints-To: abuse@wanadoo.es X-Trace: m2newsread.uni2.es 966381284 62.36.4.219 (Wed, 16 Aug 2000 01:14:44 MET DST) Organization: Servidor Usenet News de Uni2/Wanadoo Mime-Version: 1.0 User-Agent: Gnus/5.0803 (Gnus v5.8.3) Emacs/20.7 NNTP-Posting-Date: Wed, 16 Aug 2000 01:14:44 MET DST Newsgroups: es.comp.os.linux.programacion