Unix - Recorrer archivo linea a linea

 
Vista:

Recorrer archivo linea a linea

Publicado por hramos (1 intervención) el 31/01/2007 23:28:25
Saludos a todos podrian indicarme como puedo hacer para recorrer linea a linea un archivo en un shell unix y esta linea asignarla a una variable

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Recorrer archivo linea a linea

Publicado por Tom (178 intervenciones) el 01/02/2007 11:48:30
while read VAR
do
echo $VAR
done < fichero
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Recorrer archivo linea a linea

Publicado por Ernesto (1 intervención) el 21/03/2007 10:08:16
Tom:

esta es la clasica forma de recorrer un archivo, pero me encontre con un problema y no se como solucionarlo:

si la linea que lees comienza en espacio, al procesar el loop, los espacios del principio se pierden...

ojo, incluso si ahces echo "${VAR}" desaparecen, creo que el comando read no toma en cuenta los espacios del comienzo...

Lo has probado, como se soluciona ??

Gracias

Ernesto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Recorrer archivo linea a linea

Publicado por Tom (13 intervenciones) el 26/03/2007 18:39:52
Pues ... nunca me había importado, pero tienes toda la razón.
El problema está en el comando read, que está pensado para dividir la entrada en varios campos, separados por algún carácter de los especificados en IFS (no cambies esta variable, posiblemente el bash deje de funcionar como uno espera :-)).

Antes se usaba el comando line (while LINE=`line`) pero veo que ya no existe ...

Se me ocurren varias cosas. Una es que uses awk, y la otra es la que yo usaría si el proceso que tengo que hacer con cada línea no es muy complejo:

$ cat fichero | tr ' ' '%' | while read LINE
> do
> echo "$LINE" | tr '%' ' '
> done

El problema de hacerlo así, creo que se ve a simple vista ¿no? ;-)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar