Leer un archivo de texto línea por línea desde el Terminal de Linux
Me surgió el otro día la necesidad de leer el contenido de un archivo de texto desde el terminal de Linux. Quería que un comando linux tomara como argumentos o parámetros de entrada el contenido de ese archivo, de tal forma que cada argumento correspondería a una línea de ese archivo.
Para probar el script que veremos posteriormente tenemos que crear el archivo de texto a leer, que llamaremos lista.txt y que tendría el siguiente contenido:
Madrid
Barcelona
Valencia
Bilbao
Lo siguiente sería crear un script, el cual leyera línea por línea el archivo de texto. Para cada línea aplicara el comando deseado. Sería algo así:
#! / bin / bash
FILENAME=nombre_archivo
while read line
do
COMANDO $line
done < $FILENAME
En mi caso, como es solo un ejemplo, he escogido el comando "echo", que mostrará los valores por pantalla, así que correspondería al siguiente código:
#! / bin / bash
FILENAME=lista.txt
while read line
do
echo $line
done < $FILENAME
Al ejecutarlo, se mostraría en el terminal el siguiente texto:
Madrid Barcelona Valencia Bilbao
Con ésto ya habríamos conseguido nuestro propósito.
Este script puede servirnos como base para crear otros más complejos, o para pasar muchos argumentos a un comando sin tener que escribirlos directamente en el terminal.
Tweet