🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #15075

Re: Leer líneas de un fichero

#15075
From: Trigo
Date: Tue, 15 Aug 2000 00:00
74 lines
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-mail
References: <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