Programmazione BASH

Come scrivere su un file in Bash

Come scrivere su un file in Bash
Uno dei compiti essenziali che svolgiamo mentre lavoriamo con lo scripting bash è leggere e scrivere file. In questa guida, ci concentreremo su come leggere i file in bash e come modificarli.

Esistono diversi modi per leggere e scrivere un file in bash. Il modo più semplice è usare gli operatori ">" e ">>".

Il formato generale dell'utilizzo degli operatori di reindirizzamento è:

Dati > Nome file
Dati >> Nome file

Comprendiamo la procedura di scrittura su un file con un esempio:

Come scrivere un file usando gli operatori di reindirizzamento

Come discusso sopra, l'approccio semplice e diretto della scrittura su un file utilizza gli operatori di reindirizzamento. Ad esempio, se desideri modificare il testo di un file già esistente, crea prima un file di testo con il nome di "file di prova.TXT” e scrivici dentro qualsiasi cosa:

Salva il file di testo.

Digita il comando indicato di seguito nel terminale:

$ echo “Sovrascrivi il testo esistente nel file” > testfile.TXT

L'eccessiva strizzatura può essere rischiosa; è quindi buona norma abilitare “noclobber”. L'impostazione di "noclobber" bloccherebbe qualsiasi sovrascrittura su qualsiasi file in uscita.

$ set -o noclobber
$ echo “Sovrascrivi il testo esistente nel file” > testfile.TXT

Ma se vuoi bypassare "noclobber", usa il ">|” operatore invece di “>”:

$ echo “Sovrascrivi il testo esistente nel file” >| file di prova.TXT

Oppure puoi semplicemente disabilitare "noclobber":

$ set +o noclobber

Ma questo comando rimuoverà la protezione da tutti i file.

L'output sopra indica che il testo esistente è stato sovrascritto. Ora, usiamo il ">>”operatore:

$ echo “Aggiungere testo al file di testo esistente” >> testfile.TXT

eco" non è sempre l'ideale da usare poiché non è possibile formattare il testo utilizzandolo, quindi utilizzare "printf" al posto di "echo" per formattare il testo come dimostrato nel seguente comando:

$ printf “Benvenuto \n Questo è un nuovo file di testo.” > newtestfile.TXT

Comprendiamo il concetto con un esempio di script bash. Apri Vim digitando "vim" nel terminale. Se non hai l'editor Vim sul tuo dispositivo, installalo usando:

$ sudo apt install vim

Digita lo script:

#! /bin/bash
echo “Inserisci il tuo nome”
leggi il nome
echo $nome > data_dir.TXT
echo “Inserisci la tua età”
leggi l'età
echo $età >> data_dir.TXT
cat data_dir.TXT

Il "gattoIl comando "viene utilizzato per creare e modificare i file. Salva lo script sopra in Vim cambiando modalità dopo aver premuto il tasto "Esctasto " e quindi digitare ":w mioscript.sh". Apri il terminale ed esegui il codice:

Come scrivere un file usando Heredoc

Se vuoi scrivere più righe, il metodo più semplice è usare "Heredoc". Il documento Here, noto anche come "Heredoc", è un blocco di codice multiuso. La sintassi di Heredoc è:

Comando <<[-] Delimiter
.
testo/comandi
.

delimitatore

È possibile utilizzare qualsiasi stringa al posto di "Delimitatore" e  "-" può essere utilizzato anche per rimuovere eventuali spazi di tabulazione nel file. Capiamolo usando un semplice esempio:

#! /bin/bash
gatto << TEXTFILE
Questo è un file di testo.
Questo file è stato creato usando heredoc.
FILE DI TESTO

Il comando "cat" dello script sopra crea un file di testo con il nome di "TEXTFILE" e scrive il testo nel file appena creato. Ora salva il file con il nome di "mio script.sh". Avvia il terminale ed esegui lo script.

Come scrivere un file usando il comando Tee

Un altro metodo per scrivere un file è usare il comando "Tee". Come nome che indica questo comando prende l'input e scrive su un file e mostra l'output contemporaneamente. Per impostazione predefinita, il comando "Tee" sovrascriverà i dati esistenti.

$ echo “Questo è un testo” | file di testo tee.TXT

Per aggiungere usa -a:

$ echo “Questo è un altro testo” | tee -a file di testo.TXT

Per scrivere più righe, usa:

$ echo “Aggiungere testo a più file” | tee textfile1.txt file di testo2.txt file di testo3.TXT

Il comando precedente creerà tre file se non esistono e scriverà del testo su ciascuno di essi.

Conclusione

Questa guida si concentra su più approcci per scrivere su un file in bash con esempi. Nello scripting bash, ci sono diversi modi per scrivere un file, ma il più semplice è usare gli operatori di reindirizzamento ">", ">>". Per scrivere più righe, è possibile utilizzare "heredoc" e se si desidera scrivere gli stessi dati su più righe, il comando "tee" è abbastanza utile.

Come mostrare il contatore FPS nei giochi Linux
I giochi Linux hanno avuto una grande spinta quando Valve ha annunciato il supporto Linux per il client Steam e i loro giochi nel 2012. Da allora, mol...
Come scaricare e giocare a Sid Meier's Civilization VI su Linux
Introduzione al gioco Civilization 6 è una versione moderna del concetto classico introdotto nella serie dei giochi Age of Empires. L'idea era abbasta...
Come installare e giocare a Doom su Linux
Introduzione a Doom La serie Doom è nata negli anni '90 dopo l'uscita dell'originale Doom. È stato un successo immediato e da quel momento in poi la s...