In Bash, ci sono diversi modi per aggiungere testo a un file. Questo articolo ne spiega alcuni.
Per aggiungere testo a un file, devi disporre dei permessi di scrittura su di esso. In caso contrario, riceverai un errore di autorizzazione negata.
Aggiungi a un file utilizzando l'operatore di reindirizzamento (>>
) #
Il reindirizzamento consente di acquisire l'output da un comando e inviarlo come input a un altro comando o file. Il >>
l'operatore di reindirizzamento aggiunge l'output a un determinato file.
Esistono numerosi comandi che puoi utilizzare per stampare il testo sullo standard output e reindirizzarlo al file, con echo
e printf
essendo i più utilizzati.
Per aggiungere del testo a un file, specifica il nome del file dopo l'operatore di reindirizzamento:
echo "this is a new line" >> file.txt
Se utilizzato con -e
opzione echo
Il comando interpreta i caratteri con escape barra rovesciata come newline \n
:
echo -e "this is a new line \nthis is another new line" >> file.txt
Per produrre un output più complesso, usa printf
comando che permette di specificare la formattazione dell'output:
printf "Hello, I'm %s.\n" $USER >> file.txt
Un altro modo per aggiungere testo a un file consiste nell'usare il documento Here (Heredoc). È un tipo di reindirizzamento che ti consente di passare più righe di input a un comando.
Ad esempio, puoi passare il contenuto al cat
comando e aggiungerlo a un file:
cat << EOF >> file.txt
The current working directory is: $PWD
You are logged in as: $(whoami)
EOF
È possibile aggiungere l'output di qualsiasi comando a un file. Ecco un esempio con la date
comando:
date +"Year: %Y, Month: %m, Day: %d" >> file.txt
Quando si aggiunge un file utilizzando un reindirizzamento, fare attenzione a non utilizzare il >
operatore per sovrascrivere un file esistente importante.
Aggiungi a un file usando il tee
Comando #
tee
è un'utilità della riga di comando in Linux che legge dallo standard input e scrive sia nello standard output che in uno o più file contemporaneamente.
Per impostazione predefinita, il tee
comando sovrascrive il file specificato. Per aggiungere l'output al file usa tee
con il -a
(--append
) opzione:
echo "this is a new line" | tee -a file.txt
Se non vuoi tee
per scrivere sullo standard output, reindirizzalo a /dev/null
:
echo "this is a new line" | tee -a file.txt >/dev/null
Il vantaggio di usare il tee
comando sul >>
operatore è quel tee
ti consente di aggiungere testo a più file contemporaneamente e di scrivere su file di proprietà di altri utenti insieme a sudo
.
Per aggiungere del testo a un file per il quale non hai i permessi di scrittura, anteponi sudo
prima di tee
come mostrato di seguito:
echo "this is a new line" | sudo tee -a file.txt
tee
riceve l'output di echo
comando, eleva le autorizzazioni sudo e scrive nel file.
Per aggiungere testo a più di un file, specifica i file come argomenti per il tee
comando:
echo "this is a new line" | tee -a file1.txt file2.txt file3.txt
Conclusione #
In Linux, per aggiungere testo a un file, utilizzare >>
operatore di reindirizzamento o il tee
comando.
Se hai domande o feedback, sentiti libero di lasciare un commento.