GNU/Linux >> Linux Esercitazione >  >> Linux

Bash:aggiungi al file

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.


Linux
  1. Come aggiungere testo alla fine del file in Linux

  2. Uno script Bash può essere agganciato a un file?

  3. Script Bash:controlla se un file è un file di testo?

  4. Bash:Nessun file o directory di questo tipo?

  5. Come aggiungere a un file come sudo?

Comando sorgente Bash

Come reindirizzare stderr a stdout in Bash

Sostituzione di String in Bash

35 Esempi di script Bash

Bash Scripting – Dichiarazioni condizionali

Scripting Bash(III)