Bash para cada línea en un archivo

Bash para cada línea en un archivo
El bucle "para" en bash se puede usar con diferentes variaciones para realizar múltiples tareas. Una de esas variaciones es el "para cada línea en el archivo" que es responsable de leer todas las líneas en un archivo. En este artículo, hablaremos sobre los métodos de usar "para cada línea en el archivo" en bash.

Nota: Los métodos que se muestran a continuación se han demostrado en Ubuntu 20.04. Sin embargo, también funcionarán bien con cualquier otra distribución de Linux.

Métodos para usar "para cada línea en el archivo" en Bash:

En estos métodos, le mostraremos un ejemplo en el que puede leer cada línea desde un archivo, y luego puede mostrarlo en el terminal o incluso puede almacenar estas líneas en otro archivo. Echemos un vistazo a ambos métodos.

Método # 1: para mostrar las líneas de lectura en el terminal:

Para mostrar las líneas de un archivo en el terminal utilizando "para cada línea en el archivo", deberá realizar los siguientes pasos:

Paso # 1: Creación de un archivo de texto ficticio:

En primer lugar, debe crear un archivo de texto con algunos datos aleatorios en aras de la demostración. Aunque, este archivo de texto se puede crear en cualquier lugar, sin embargo, se recomienda encarecidamente que lo cree en la carpeta de inicio. Para hacer eso, haga clic en el icono del Administrador de archivos resaltado en la imagen que se muestra a continuación:

  • Ahora haga clic derecho en cualquier lugar de su carpeta de inicio y seleccione la opción de nuevo documento en el menú que aparece. Luego seleccione la opción de documento vacío. Una vez que se haya creado un documento vacío en su carpeta de inicio, proporcione el nombre de su elección, seguido por el .extensión txt. En este ejemplo, lo hemos nombrado como foreachline.TXT.


  • Haga doble clic en este archivo de texto para abrirlo y luego escriba cualquier texto aleatorio como se muestra en la siguiente imagen. Después de hacer esto, guarde este archivo y cierre.

  • Paso # 2: Creación del script bash:

    Ahora cree un archivo bash de la misma manera que ha creado el archivo de texto en la carpeta de inicio, excepto que esta vez, debe proporcionar su nombre seguido de la .extensión sh en lugar de la .extensión txt. Hemos nombrado nuestro archivo bash como foreachline.sh pero puedes darle cualquier nombre de tu elección.

    Abra este archivo haciendo doble clic en él y luego escriba el script que se muestra en la imagen a continuación en su archivo bash recién creado. Aquí, la primera línea es para indicar que el siguiente script es un script bash. Simplemente hemos creado una variable llamada "archivo" y le hemos asignado el nombre de nuestro archivo de texto como su valor i.mi. Foreachline.TXT. Luego hemos creado una variable llamada "líneas" y la igualamos a "$ (archivo CAT $)". Aquí, el comando CAT lee el contenido de nuestro archivo de texto y cuando está precedido por un símbolo "$", entonces el contenido leído por este comando se almacenará en la variable de líneas. De esta manera, todas las líneas del archivo llamado foreachline.TXT se almacenará en la variable de líneas. Luego hemos aplicado el bucle "para" que tiene un iterador "línea". Este iterador funciona en la variable "líneas" que hemos creado anteriormente e iterará a través de todas las líneas una por una. Luego, en el bloque "Do-Done", simplemente hemos mostrado todas estas líneas en la terminal haciendo uso del comando ECHO.

    Paso # 3: Ejecutando el script bash:

    Ahora inicia la terminal en Ubuntu 20.04 y luego ejecute el siguiente comando en él para ejecutar el script bash creado anteriormente:
    Bash foreachline.mierda

    Cuando este comando hará que el script bash se ejecute, podrá ver todas las líneas de su archivo de texto en su terminal como se muestra en la siguiente imagen:

    Método # 2: para guardar todas las líneas de lectura en otro archivo:

    En este método, hemos modificado ligeramente el script bash creado en el método anterior para guardar todas las líneas de lectura en un nuevo archivo de texto en lugar de mostrarlas en el terminal. Para hacer esto, realice los pasos mencionados a continuación:

    Paso # 1: Modificación del script bash creado anteriormente y ejecutándolo:

    Abra el script bash que ha creado en el método anterior y modifíquelo como se muestra en la siguiente imagen. Simplemente hemos agregado el símbolo ">>" seguido de un nuevo nombre de archivo después del comando ECHO dentro del bloque "Do-Done". Esta modificación guardará todas las líneas de lectura en un nuevo archivo de texto en lugar de mostrarlas en el terminal. Ahora ejecute el script bash nuevamente a través del terminal con el comando bash seguido del nombre del archivo bash. Esta vez, cuando se ejecutará el script bash, creará un nuevo archivo de texto cuyo nombre en este caso es nuevo archivo.TXT.

    Paso # 2: Acceder al archivo de texto recién creado:

    Para verificar si todas las líneas de "leer" se han guardado en el nuevo archivo de texto, simplemente puede ver el contenido de ese archivo ejecutando el siguiente comando en su terminal:
    Newfile de gato.TXT

    La salida que se muestra en la imagen a continuación le asegurará que todas las líneas de lectura se han copiado en el nuevo archivo de texto.

    Conclusión:

    De esta manera, puede utilizar "para cada línea en el archivo" para leer todas las líneas de un archivo y luego manipularlo con estas líneas. Acabamos de hablar sobre los dos escenarios básicos en este artículo, sin embargo, incluso puede usar este bucle para problemas más complejos.