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.