Come aggiungere un testo alla fine di un file, in Linux
Lavorando con i file di configurazione in Linux, spesso capita di dover aggiungere del testo ad un file esistente.
In questo breve articolo, vedremo alcuni modi per aggiungere del testo alla fine di un file.
Aggiungere testo con l'operatore >>
L'operatore ">>" reindirizza l'output su un file, ed opera così:
- se il file non esiste, lo crea
- se esiste, l'output verrà aggiunto alla fine del file
Ad esempio, è possibile utilizzare il comando "echo" per aggiungere il testo alla fine del file come mostrato di seguito.
Nel nostro esempio "echo" dovrebbe stampare a video la parola "pippo": utilizzando l'operatore ">>", l'output, invece che essere stampato a video, viene aggiunto al file "/tmp/list.txt"
# echo "pippo" >> /tmp/list.txt
Attenzione: ">>" si differenzia da ">": infatti ">" crea sempre un nuovo file, per cui se il file fosse presente verrebbe sovrascritto.
In alternativa al comando "echo" possiamo usare il comando "printf"
# printf "pluto\n" >> /tmp/list.txt
Mentre "echo" aggiunge una riga al file, andando automaticamente a capo riga, il comando "printf" necessita di aggiungere la "\n" ("new line").
Vediamo anche come usare il comando "cat": cat stampa a video il contenuto di un file.
Il nostro obiettivo è concatenare, cioè fondere, il contenuto di più files.
In questo esempio, prendo il contenuto di "/tmp/list.txt" creato, che contiene le righe pippo e pluto
# cat /tmp/list.txt
pippo
pluto
Prendo il contenuto di un altro file chiamato "/tmp/list2.txt" che contiene, ad esempio, la riga paperino
# cat /tmp/list2.txt
paperino
Bene, adesso inseriamo il contenuto di "list2.txt" in "list.txt"
# cat /tmp/list2.txt >> /tmp/list.txt
Vediamo il risultato
# cat /tmp/list.txt
pippo
pluto
paperino
Aggiungere il testo usando il comando "tee"
Il comando tee legge dati dallo standard input e "scrive" sia sullo standard output che su uno o più files definiti nel comando.
Utilizzando il flag "-a", aggiungiamo il testo alla fine di un file.
Facciamo un esempio: abbiamo un file chiamato "list3.txt" al cui interno è contenuta la riga "minnie"
# cat /tmp/list3.txt
minnie
Adesso usiamo il comando tee per aggiungere "minnie" al fondo del contenuto di "list.txt"
# cat /tmp/list3.txt | tee -a /tmp/list.txt
minnie
A video verrà visualizzato "minnie", mentre nel file "list.txt" adesso conterrà quanto segue:
# cat /tmp/list.txt
pippo
pluto
paperino
minnie
Bene, con questo è tutto! Hai imparato ad aggiungere del testo alla fine di un file in Linux.