Linux 1 min de lectura

Bucles con cat y espacios

Pantalla con código de programación Bash para optimizar bucles con cat al leer archivos con espacios
En alguna ocasion podemos querer hacer un bucle con for obteniendo los elementos mediante un cat a un archivo. Si alguna vez hemos intentado hacer esto, nos habremos percatado de que si las lineas del archivo contienen un espacio, el cat va a insertas un espacio separando la línea en tantos elementos como palabras separadas por espacios tiene esa línea. Por ejemplo:
javi@casa:/tmp$ for i in $(cat prueba); do echo $i; done
Primera
Linea
Segunda
Linea
Tercera
Linea
Esto no es lo que esperabamos, ya que mi intención era sacar las lineas una a una, pero completas. Para hacer un bucle de este tipo sin que se nos separen las líneas de forma que se muestre cada palabra en una diferente, debemos cambiar la aproximación y hacer el bucle de otra forma. De esta manera, podemos hacer el siguiente bucle
javi@casa:/tmp$ while read i; do echo "$i"; done < ./prueba
Primera Linea
Segunda Linea
Tercera Linea
De esta sencilla forma podremos iterar con bucles a lo largo de archivos que contienen palabras separadas por espacios sin que se nos rompan todos los esquemas y formato original del archivo y sus líneas.

Comentarios