Come leggere i dati della colonna da un file di testo in uno script bash shell

Come leggere i dati della colonna da un file di testo in uno script bash shell

Una delle attività che possono essere eseguite utilizzando uno script bash shell è leggere i dati da un file di testo ed elaborarli. In questo articolo, esamineremo come leggere una colonna specifica di dati da un file di testo o come leggere più colonne da un file di testo in uno script Bash Shell.

Come leggere i dati della colonna da un file di testo in uno script bash shell

Leggere le colonne specifiche di dati da un file di testo in uno script bash shell sono utili in varie applicazioni come in attività ripetitive automatizzate, sviluppo del software, gestione del testo e molto altro, tutto ciò che devi fare è semplicemente leggere quella rispettiva colonna. Per ulteriori illustrazioni sotto la sintassi che si può seguire per leggere qualsiasi colonna da qualsiasi file di testo:

#!/Bin/Bash
mentre la riga di lettura; Fare
# usa AWK per estrarre il terzo campo (il nome) da ogni riga
= $ (echo $ riga | awk 'print $')
# stampa il nome
Echo $
Fatto < .TXT


1: Lo script inizia specificando l'interprete di shell da utilizzare con la linea Shebang #!/Bin/Bash.

2: Il loop while legge il contenuto del file di testo riga per riga, usando il comando di lettura e per ogni riga che viene letto, il Awk Il comando viene utilizzato per estrarre il campo (il nome) dalla riga. Il comando awk usa il modello print $ Per selezionare il campo, che viene quindi archiviato nel nome della variabile.

3: Infine, lo script stampa il valore della variabile del nome usando il comando Echo e questo processo viene ripetuto per ogni riga nel file fino a quando non ci sono più righe da leggere.

Per la comprensione del lettore ho usato la sintassi sopra indicata per leggere una colonna dal file di testo e sotto è il codice per esso:

#!/Bin/Bash
mentre la riga di lettura; Fare
# Usa AWK per estrarre il secondo campo da ogni riga
info = $ (echo $ riga | awk 'stampa $ 3')
# stampa l'età
echo $ info
Fatto < company_details.txt


Qui nel codice, ho letto la terza colonna di ciascuna riga del file di testo denominato dettagli dell'azienda, il comando awk viene utilizzato per estrarre il terzo campo (il nome) dalla riga. Il comando AWK utilizza il pattern stampa $ 3 per selezionare il terzo campo, ecco l'output del mio codice di esempio:


Di seguito è riportato il file di testo che ho creato per scopi dimostrativi:

Come leggere più colonne di un file di testo in script bash shell

Se si desidera leggere più di una colonna o di un file, tutto ciò che è necessario aggiungere il numero della colonna e il resto è lo stesso, quindi ecco il codice per leggere più di una colonna del file di testo:

#!/Bin/Bash
# Questa riga specifica che lo script dovrebbe essere interpretato dalla shell bash.
# Loop attraverso ogni riga del file
mentre la riga di lettura; Fare
# usa AWK per estrarre il terzo campo (il nome) da ogni riga
info = $ (echo $ riga | awk 'stampa $ 1, $ 2, $ 3')
# stampa il nome
echo $ info
Fatto < company_details.txt


Di seguito è riportato l'output del codice che legge tutte e tre le colonne nel file di testo:

Conclusione

Gli script bash sono uno strumento versatile che può essere utilizzato per automatizzare varie attività soprattutto quando si tratta di sistemi basati su Unix. Combinando il ciclo while e altri comandi shell è possibile leggere facilmente i dati della colonna da un file di testo ed eseguire varie operazioni con i dati.