Bash per ogni riga in un file

Bash per ogni riga in un file
Il ciclo "per" in bash può essere utilizzato con diverse varianti per eseguire più attività. Una di queste variazioni è la "per ogni riga in file" che è responsabile della lettura di tutte le righe in un file. In questo articolo, parleremo dei metodi di utilizzo di "per ogni riga in file" in bash.

Nota: i metodi mostrati di seguito sono stati dimostrati su Ubuntu 20.04. Tuttavia, lavoreranno anche bene con qualsiasi altra distribuzione di Linux.

Metodi di utilizzo di "per ogni riga in file" in bash:

In questi metodi, ti mostreremo un esempio in cui puoi leggere ogni riga da un file, quindi puoi visualizzarla sul terminale o puoi persino archiviare queste righe in un altro file. Diamo un'occhiata a entrambi questi metodi.

Metodo n. 1: per visualizzare le righe di lettura sul terminale:

Per visualizzare le righe di un file sul terminale utilizzando "per ogni riga in file", dovrai eseguire i seguenti passaggi:

Passaggio n. 1: creazione di un file di testo fittizio:

Prima di tutto, devi creare un file di testo con alcuni dati casuali per il bene della dimostrazione. Anche se questo file di testo può essere creato ovunque, tuttavia, si consiglia altamente di creare nella cartella domestica. Per fare ciò, fare clic sull'icona File Manager evidenziata nell'immagine mostrata di seguito:

  • Ora fai clic con il pulsante destro del mouse ovunque nella cartella di casa e seleziona l'opzione Nuova documento dal menu che appare. Quindi selezionare l'opzione Documento vuoto. Una volta che un documento vuoto è stato creato nella cartella di casa, fornisci il nome di tua scelta seguita dal .estensione txt. In questo esempio, l'abbiamo chiamato come foreachline.TXT.


  • Fare doppio clic su questo file di testo per aprirlo e quindi digitare qualsiasi testo casuale come mostrato nella seguente immagine. Dopo averlo fatto, salva questo file e chiudilo.

  • Passaggio n. 2: creazione dello script bash:

    Ora crea un file bash nello stesso modo in cui hai creato il file di testo nella cartella domestica, tranne per questo, è necessario fornire il suo nome seguito dal .estensione sh invece del .estensione txt. Abbiamo nominato il nostro file bash come foreachline.sh ma puoi dargli qualsiasi nome di tua scelta.

    Apri questo file facendo doppio clic su di esso e quindi digita lo script mostrato nell'immagine seguente nel tuo file bash appena creato. Qui, la prima riga è lì per indicare che il seguente script è uno script bash. Abbiamo semplicemente creato una variabile denominata "file" e gli abbiamo assegnato il nome del nostro file di testo come valore i.e. Foreachline.TXT. Quindi abbiamo creato una variabile denominata "linee" e la abbiamo pareggiato in "$ (file cat $)". Qui, il comando Cat legge il contenuto del nostro file di testo e quando è preceduto da un simbolo "$", quindi il contenuto letto da questo comando verrà memorizzato nella variabile delle righe. In questo modo, tutte le righe del file chiamato foreachline.txt verrà memorizzato nella variabile delle linee. Quindi abbiamo applicato il ciclo "per" che ha una "linea" di iteratore. Questo iteratore funziona sulla variabile "linee" che abbiamo creato sopra e iterirà attraverso tutte le righe una per una. Quindi nel blocco "Do-Done", abbiamo semplicemente visualizzato tutte queste righe sul terminale facendo uso del comando Echo.

    Passaggio n. 3: eseguire lo script bash:

    Ora lancia il terminale in Ubuntu 20.04 e quindi eseguire il seguente comando in esso per eseguire lo script bash creato sopra:
    Bash Foreachline.sh

    Quando questo comando farà eseguire lo script bash, sarai in grado di vedere tutte le righe del file di testo sul tuo terminale come mostrato nella seguente immagine:

    Metodo n. 2: per salvare tutte le righe di lettura in un altro file:

    In questo metodo, abbiamo leggermente modificato lo script bash creato nel metodo sopra per salvare tutte le righe di lettura in un nuovo file di testo anziché visualizzarle sul terminale. Per fare questo, eseguire i passaggi menzionati di seguito:

    Passaggio n. 1: modifica dello script bash creato sopra ed eseguirlo:

    Apri lo script bash creato nel metodo sopra e modificalo come mostrato nella seguente immagine. Abbiamo semplicemente aggiunto il simbolo ">>" seguito da un nuovo nome file dopo il comando Echo all'interno del blocco "Do-Done". Questa modifica salverà tutte le righe di lettura in un nuovo file di testo invece di visualizzarle sul terminale. Ora esegui nuovamente lo script bash tramite il terminale con il comando bash seguito dal nome del file bash. Questa volta, quando verrà eseguito lo script bash, creerà un nuovo file di testo il cui nome in questo caso è newfile.TXT.

    Passaggio n. 2: accedere al file di testo appena creato:

    Per verificare se tutte le righe "leggi" sono state salvate nel nuovo file di testo, è possibile visualizzare semplicemente il contenuto di quel file eseguendo il seguente comando nel tuo terminale:
    Cat Newfile.TXT

    L'output mostrato nell'immagine seguente ti assicurerà che tutte le righe di lettura sono state copiate nel nuovo file di testo.

    Conclusione:

    In questo modo, puoi utilizzare "per ogni riga in file" per leggere tutte le righe di un file e quindi manipolarlo con queste righe. Abbiamo appena parlato dei due scenari di base in questo articolo, tuttavia, puoi persino usare questo ciclo per problemi più complessi.