LINUX

Come aggiungere alla fine di un file in Linux

aggiungere alla fine di un file linux

In questo tutorial, impariamo diversi modi per aggiungere testo alla fine di un file in Linux. Puoi ottenere ciò utilizzando diversi metodi in Linux, ma il più semplice è reindirizzare l’output del comando al nome file desiderato. Utilizzando il carattere >> è possibile generare l’output di qualsiasi comando in un file di testo.

Altri modi in cui questo può essere fatto è usare strumenti Linux come tee, awk e sed.

Reindirizza il comando o l’output dei dati alla fine del file

Ogni sistema operativo basato su Unix ha un concetto di “una posizione di uscita predefinita”. Tutti lo chiamano “standard output”, o “stdout”, pronunciato standard out. La tua shell (probabilmente bash o zsh) controlla costantemente quella posizione di uscita predefinita. Quando la tua shell vede nuovi risultati lì, li stampa sullo schermo in modo che tu possa vederli.

Possiamo reindirizzare quell’output a un file usando l’operatore >>.

La procedura è la seguente:

Aggiungi testo alla fine del file usando eco comando:

echo 'sample text line' >> filename.txt

Aggiungi l’output del comando alla fine del file:

command >> filename.txt

Aggiunta di righe alla fine del file

Possiamo aggiungere righe di testo utilizzando questo carattere di reindirizzamento >> oppure possiamo scrivere dati e risultati di comando in un file di testo. Utilizzando questo metodo, il file verrà creato se non esiste.

Per esempio:

$ echo "sample line" >> test.txt
$ cat test.txt 
sample line

$ echo "sample line 2" >> test.txt
$ cat test.txt 
sample line
sample line 2

Aggiunta dell’output dei dati del comando alla fine del file

È inoltre possibile aggiungere dati o eseguire il comando e aggiungere risultati al file desiderato. In questo esempio useremo date per aggiungere la data corrente a un file, il comando uname – che stamperà la versione del kernel del sistema Linux che stiamo usando, e infine S comando che visualizza la struttura della directory corrente e l’elenco dei file.
È possibile utilizzare qualsiasi comando in grado di inviare l’output a un terminale, il che significa quasi tutti gli strumenti della riga di comando di Linux.

$ date >> test.txt 
$ cat test.txt 
sample line
sample line 2
Tue Jun 25 20:28:51 UTC 2019


$ uname -r >> test.txt 
$ cat test.txt 
sample line
sample line 2
Tue Jun 25 20:28:51 UTC 2019
3.13.0-170-generic


$ ls >> test.txt 
$ cat test.txt 
sample line
sample line 2
Tue Jun 25 20:28:51 UTC 2019
3.13.0-170-generic
test.txt

Metodi alternativi

Vediamo come aggiungere utilizzando l’utility Linux tee, awk e sed.

Utilizzando lo strumento della riga di comando tee

Il comando Tee legge l’input standard e lo scrive sia sull’output standard che su uno o più file. L’ordine prende il nome dal divisore a T utilizzato negli impianti idraulici. Interrompe l’output di un programma in modo che possa essere visualizzato e salvato in un file.

$ tee -a test.txt <<< "appended line of text"
vagrant@ubuntu-trusty-64:~$ cat test.txt 
appended line of text

Utilizzando lo strumento a riga di comando awk

Awk è un’utilità che consente a un programmatore di scrivere programmi piccoli ma efficienti sotto forma di istruzioni che definiscono modelli di testo da cercare in ogni riga di un documento e l’azione da intraprendere quando viene trovata una corrispondenza in un documento. la linea. Awk è utilizzato principalmente per la scansione e l’elaborazione di modelli.

$ awk 'BEGIN{ printf "another text line appended" >> "test.txt"  }'
vagrant@ubuntu-trusty-64:~$ cat test.txt 
another text line appended

Utilizzando lo strumento da riga di comando sed

Il comando Sed in Linux è l’acronimo di stream editor e può eseguire molte funzioni su un file come cercare, trovare e sostituire, inserire o eliminare. Usando sed puoi modificare i file senza nemmeno aprirli, il che è un modo molto più veloce per trovare e sostituire qualcosa nel file.

$ sed -i '$a yet another text line' test.txt
vagrant@ubuntu-trusty-64:~$ cat test.txt 
yet another text line

Aggiungi più righe a un file

Esistono diversi modi per aggiungere più righe a un file contemporaneamente.
Naturalmente, puoi aggiungere le righe una per una:

$ echo "line 1" >> result.txt
$ echo "line 2" >> result.txt

L’opzione successiva è inserire una nuova riga nel terminale:

echo "line 1
line 2
line 3" >> result.txt

Un altro modo è aprire un file e scrivere righe fino a quando non si entra in EOT:

$ cat <<EOT >> result.txt
line 1
line 2
EOT

Conclusione

Sebbene esistano diversi modi per aggiungere righe di testo o dati e l’output del comando a un file, ho scoperto che il modo più semplice è utilizzare il carattere di reindirizzamento >>. Esistono modi per aggiungere del testo alla fine di un numero di riga specifico in un file o nel mezzo di una riga utilizzando espressioni regolari, ma ne parleremo in un altro articolo.

Facci sapere quale metodo aggiungere alla fine del file che ritieni sia il migliore nella sezione dei commenti.

Related Articles

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Back to top button
Close