Come leggere file riga per riga nello script Bash

How Read File Line Line Bash Script



Come scriveresti uno script Bash in grado di elaborare un file di testo una riga alla volta. Per prima cosa hai bisogno di una sintassi e di un approccio per leggere il file riga per riga. I metodi per questo approccio sono mostrati in questo tutorial.

Supponiamo di avere un file chiamato azienda.txt che contiene i nomi delle società. Questo file contiene il seguente contenuto.







Azienda.txt
Samsung
Nokia
LG
Sinfonia
i phone

Esempio -1: lettura del contenuto del file dalla riga di comando

Supponiamo di voler leggere il file, azienda.txt , riga per riga dalla riga di comando senza 'gatto' comando. Eseguire il comando seguente per eseguire l'attività. mentre loop leggerà ogni riga dal file azienda.txt in ogni passaggio e memorizzare il contenuto della riga in $line variabile che verrà stampata in seguito.



$mentre leggerelinea;fare buttato fuori $line;fatto <azienda.txt



Esempio -2: lettura del contenuto del file tramite script

Crea un file bash e aggiungi il seguente codice per leggere il contenuto di un particolare file. Qui, un nome file esistente è memorizzato in $nomefile variabile e $n variabile viene utilizzata per mantenere il valore del numero di riga di quel file. Come l'esempio precedente, mentre loop viene utilizzato per leggere questo file con il numero di riga.





#!/bin/bash
nome del file='azienda.txt'
n=1
mentre leggerelinea;fare
# leggendo ogni riga
buttato fuori 'Linea n.$n:$line'
n= $((n+1))
fatto < $nomefile

Eseguire il comando seguente per eseguire lo script.

$bashreadfile1.sh

Correre 'gatto' comando con azienda.txt file per visualizzare il contenuto originale di azienda.txt file.



$ cat company.txt

Esempio -3: passaggio del nome del file dalla riga di comando e lettura del file

Crea un file bash e aggiungi il seguente script. Questo script prenderà il nome del file dall'argomento della riga di comando. Il valore del primo argomento viene letto dalla variabile $1 che conterrà il nome del file da leggere. Se il file esiste nella posizione corrente allora mentre loop leggerà il file riga per riga come nell'esempio precedente e stamperà il contenuto del file.

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

Esegui lo script sopra con dipendente.txt file come valore dell'argomento. L'output mostrerà il contenuto di dipendente.txt file rimuovendo lo spazio extra. Puoi mostrare il contenuto originale di dipendente.txt file usando 'gatto' comando.

$ bash readfile2.txt impiegato.txt
$ cat dipendente.txt

Esempio: 4: lettura del file omettendo l'escape della barra rovesciata

Se vuoi leggere ogni riga di un file omettendo l'escape della barra rovesciata, devi usare '-R' opzione con comando read in mentre ciclo continuo.

#!/bin/bash
mentre leggere -Rlinea;fare
# Lettura di ogni riga
buttato fuori $line
fatto <azienda2.txt

Crea un file chiamato azienda2.txt con barra rovesciata ed eseguire il comando seguente per eseguire lo script. L'output mostrerà il contenuto del file senza alcuna barra rovesciata.

$bashreadfile3.sh

Sarà necessario leggere il file per molti scopi di programmazione. Ad esempio, puoi cercare o abbinare facilmente qualsiasi contenuto particolare da qualsiasi file leggendo ogni riga separatamente. Quindi, è un compito essenziale per qualsiasi programmazione. Alcuni semplici esempi di lettura di file nello script bash sono mostrati in questo tutorial. Questi ti aiuteranno ad avere l'idea di leggere il contenuto del file riga per riga usando il ciclo while nello script bash e applicandolo nel tuo script in modo più efficiente. Per maggiori informazioni guarda il video !