Para leer un archivo línea a línea lo más cómodo es utilizar un bucle while con read line. Es decir:
1 2 3 |
while read linea ; do echo ${linea} done <<< "`cat archivo`" |
en linea se va almacenando en cada iteración la línea del archivo que toque y para que el bucle while sepa de donde obtener los datos ponemos al final del bucle <<< para indicarle que los datos le van a llegar por esa vía, cat archivo
para volcar el contenido del archivo y lo encerramos entre comillas dobles («) para que cada línea la trate como un todo, sin las comillas en cada iteración tomaría una sola palabra del archivo, es decir recorreriamos el archivo de palabra en palabra.
Naturalmente si nos interesara recorrer un archivo de palabra en palabra, por ejemplo porque es un archivo de configuración en el que cada línea es del tipo opcion=valor (así sin espacios), nos serviría con hacer lo siguiente:
1 2 3 4 |
contenido=`cat archivo` for linea in ${contenido} ; do echo ${linea} done |
o sin utilizar la variable contenido:
1 2 3 |
for linea in `cat archivo` ; do echo ${linea} done |