Bash Per a cada línia d'un fitxer

Bash Each Line File



El bucle For a Bash es pot utilitzar amb diferents variacions per realitzar múltiples tasques. Una d’aquestes variacions és la Per a cada línia del fitxer que s’encarrega de llegir totes les línies d’un fitxer. En aquest article, parlarem dels mètodes d'ús de cada línia del fitxer a Bash.

Nota: Els mètodes que es mostren a continuació s'han demostrat a Ubuntu 20.04. Tot i això, també funcionaran bé amb qualsevol altra distribució de Linux.







Mètodes d'ús per a cada línia del fitxer a Bash:

En aquests mètodes, us mostrarem un exemple en què podeu llegir cada línia d'un fitxer i, a continuació, podeu mostrar-la al terminal o fins i tot podeu emmagatzemar-les en un altre fitxer. Fem una ullada a aquests dos mètodes.



Mètode núm. 1: per mostrar les línies de lectura al terminal:

Per mostrar les línies d'un fitxer al terminal mitjançant l'ús de cada línia del fitxer, haureu de realitzar els passos següents:



Pas 1: crear un fitxer de text fals:

Primer de tot, heu de crear un fitxer de text amb algunes dades aleatòries en nom de la demostració. Tot i que aquest fitxer de text es pot crear a qualsevol lloc, és recomanable que el creeu a la carpeta Inici. Per fer-ho, feu clic a la icona del Gestor de fitxers ressaltada a la imatge que es mostra a continuació:





  • Creació d’un fitxer de text fictici

    Ara feu clic amb el botó dret a qualsevol lloc de la carpeta Inici i seleccioneu l'opció Document nou al menú que apareix. A continuació, seleccioneu l’opció Document buit. Un cop s'ha creat un document buit a la carpeta d'inici, proporcioneu el nom que vulgueu seguit de l'extensió .txt. En aquest exemple, l’hem anomenat ForEachLine.txt.

  • Creació d’un fitxer de text fictici2
    Feu doble clic sobre aquest fitxer de text per obrir-lo i, a continuació, escriviu qualsevol text aleatori tal com es mostra a la imatge següent. Després de fer això, deseu aquest fitxer i tanqueu-lo.



  • Creació d’un fitxer de text fictici3

    Pas 2: creació de l'script Bash:

    Ara creeu un fitxer Bash de la mateixa manera que heu creat el fitxer de text a la carpeta Inici excepte que aquesta vegada heu de proporcionar el seu nom seguit de l'extensió .sh en lloc de l'extensió .txt. Hem anomenat el nostre fitxer Bash com a ForEachLine.sh, però podeu donar-li qualsevol nom que vulgueu.
    Creació de l'script Bash

    Obriu aquest fitxer fent doble clic sobre ell i, a continuació, escriviu l'script que es mostra a la imatge següent al fitxer Bash acabat de crear. Aquí hi ha la primera línia per indicar que el següent script és un script Bash. Simplement hem creat una variable anomenada File i li hem assignat el nom del nostre fitxer de text com a valor, és a dir, ForEachLine.txt. A continuació, hem creat una variable anomenada Lines i l’hem igualada a $ (cat $ File). Aquí, l’ordre cat llegeix el contingut del nostre fitxer de text i, quan va precedit d’un símbol $, el contingut llegit per aquesta ordre s’emmagatzemarà a la variable Lines. D'aquesta manera, totes les línies del fitxer anomenat ForEachLine.txt s'emmagatzemaran a la variable Lines. A continuació, hem aplicat el bucle For que té una línia iteradora. Aquest iterador funciona a la variable Lines que hem creat anteriorment i recorrerà totes les línies una per una. A continuació, al bloc fet, simplement hem mostrat totes aquestes línies al terminal fent ús de la comanda echo.
    Creació de l’escriptura Bash2

    Pas 3: executar l'script Bash:

    Ara inicieu el terminal a Ubuntu 20.04 i, a continuació, executeu la següent ordre per executar l'script Bash creat anteriorment:
    bash ForEachLine.sh
    Execució de l'script Bash

    Quan aquesta ordre farà que s'executi l'script bash, podreu veure totes les línies del fitxer de text al terminal, tal com es mostra a la imatge següent:
    Execució de l'script Bash

    Mètode 2: per desar totes les línies de lectura en un altre fitxer:

    En aquest mètode, hem modificat lleugerament l'script Bash creat al mètode anterior per desar totes les línies llegides en un fitxer de text nou en lloc de mostrar-les al terminal. Per fer-ho, seguiu els passos esmentats a continuació:

    Pas 1: modificació de l'script Bash creat anteriorment i execució:

    Obriu l'script Bash que heu creat amb el mètode anterior i modifiqueu-lo tal com es mostra a la imatge següent. Simplement hem afegit el símbol >> seguit d’un nou nom de fitxer després de l’ordre echo dins del bloc fet. Aquesta modificació desarà totes les línies llegides en un fitxer de text nou en lloc de mostrar-les al terminal. Ara torneu a executar l'script Bash a través del terminal amb l'ordre bash seguit del nom del fitxer Bash. Aquesta vegada, quan s'executarà l'script Bash, crearà un fitxer de text nou el nom en aquest cas és NewFile.txt.
    Modificació de l’escriptura Bash creada anteriorment i execució1

    Pas 2: accedir al fitxer de text creat recentment:

    Per verificar si totes les línies llegides s'han desat al fitxer de text nou, només podeu veure el contingut d'aquest fitxer executant l'ordre següent al terminal:
    cat NewFile.txt
    Accés al fitxer de text de nova creació
    La sortida que es mostra a la imatge següent us assegurarà que totes les línies llegides s'han copiat al fitxer de text nou.
    Accés al fitxer de text de nova creació2

    Conclusió:

    D'aquesta manera, podeu fer ús de cada línia del fitxer per llegir totes les línies d'un fitxer i després manipular-lo amb aquestes línies. Acabem de parlar dels dos escenaris bàsics d’aquest article, però, fins i tot podeu utilitzar aquest bucle per a problemes més complexos.