Bash: durante la lettura della riga

Bash While Read Line

Quando lavori su script bash, a volte potresti aver bisogno di leggere un file riga per riga. Spieghiamo con un esempio. Hai alcuni dati in un file di testo che dovrebbero essere eseguiti o elaborati utilizzando uno script. Quindi, eseguire uno script bash per elaborare un file di testo è molto diverso. È necessario seguire una sintassi specificata per leggere un file riga per riga. Questo articolo ti aiuterà a leggere una riga da un file usando il ciclo while in Bash.

Sintassi di base della riga while read

La seguente sintassi viene utilizzata per la shell bash per leggere un file utilizzando il ciclo while:



mentre leggere -Rlinea;
fare
buttato fuori '$line';
fatto <file di input

L'opzione '-r' nella sintassi sopra menzionata è passata al comando di lettura che evita l'escape della barra rovesciata dall'essere interpretata. L'opzione 'input_file' ha rappresentato il nome del file a cui si desidera accedere utilizzando il comando 'read'.



Il separatore di campo interno abbreviato come IFS può essere utilizzato prima che il comando di lettura sia impostato sulla stringa nulla che impedisce che gli spazi iniziali o finali vengano tagliati.



mentre IFS=leggere -Rlinea;
fare
buttato fuori $line;
fatto <file di input

Apri il terminale usando Ctrl + Alt + t scorciatoia e quindi esegui i seguenti comandi su di esso.

Esempio n. 1: Lettura file riga per riga

Facciamo un esempio in cui supponiamo di avere un file chiamato OS.txt contenente i nomi di tutte le importanti distribuzioni Linux. Se vuoi leggere un file senza usare il comando 'cat', a questo scopo puoi eseguire il seguente comando per eseguire l'attività specifica. Useremo il ciclo while che leggerà ogni riga dal file OS.txt e memorizzerà il contenuto in ogni passaggio in una variabile $line che potrai visualizzare in seguito.

Incolla i seguenti nomi delle distribuzioni Linux nel file OS.txt



CentOS
Ubuntu
Debian
LinuxMint $mentre leggerelinea;
fare
buttato fuori $line;
fatto <OS.txt


Dal comando sopra, otterrai la seguente risposta nella finestra del terminale:

Esempio n. 2: lettura del file utilizzando lo script bash

Crea un file bash e quindi aggiungi il codice indicato di seguito in questo file per leggere il contenuto del file. È possibile memorizzare il file di testo precedente in una nuova variabile $nomefile e la variabile $n viene utilizzata per mantenere il valore di ciascuna riga. Ora, usando il ciclo while leggeremo ogni riga da un file con un particolare numero di riga.

#!/bin/bash
nome del file='OS.txt'
n=1
mentre leggerelinea;
fare
# per leggere ogni riga
buttato fuori 'Linea di distribuzione del sistema operativo n.$n:$line'
n= $((n+1))
fatto < $nomefile

Salva il file con un nome OSinfo.sh e digita il seguente comando sul terminale per eseguire lo script bash sopra.

$bashOSinfo.sh

Ora, esegui il comando cat per visualizzare il contenuto del file originale.

$gattoOS.txt

Metodo alternativo per la lettura dei file

Usando il passaggio del nome del file da un comando

In un file bash, è necessario aggiungere il seguente script di codice. In questo script, dobbiamo prendere un nome di file come argomento. Innanzitutto, il valore di un argomento viene letto da una variabile $1 che ha un nome file per la lettura. Verificherà che il nome del file esista nella posizione specificata, quindi utilizzando il ciclo while leggerà un file riga per riga simile all'esempio precedente.

#!/bin/bash
nome del file=$ 1
mentre leggerelinea;fare
# leggendo ogni riga
buttato fuori $line
fatto < $file.testo

Salva lo script sopra con il nome 'Readline.sh' ed esegui il seguente comando sul terminale per eseguire lo script sopra menzionato:

Nell'output sopra, osserverai che il file 'OSinfo.txt' passa come argomento e il contenuto di 'OSinfo.txt' verrà visualizzato dopo aver rimosso gli spazi extra. È possibile visualizzare il contenuto del file originale eseguendo 'cat OSinfo.txt'.

Conclusione

In questo articolo, abbiamo discusso come leggere le righe usando il ciclo while nella programmazione bash. Abbiamo implementato diversi metodi utilizzando lo script bash oppure puoi semplicemente utilizzare un file di testo per eseguire la lettura di un file riga per riga. Se sei interessato a saperne di più esempi, utilizzando la sintassi sopra menzionata puoi eseguire anche sul tuo sistema. Spero che questo tutorial ti sia piaciuto e che sia unico per te. Informati in caso di errore.