Linux

Bash Scrivi su file

Bash Scrivi su file

Una delle attività più comuni quando si scrivono script Bash o si lavora sulla riga di comando di Linux è leggere e scrivere file.

Questo articolo spiega come scrivere testo su un file in Bash, usando gli operatori di reindirizzamento e tee comando.

Scrittura su un file utilizzando gli operatori di reindirizzamento #

In Bash, il reindirizzamento dell'output consente di acquisire l'output da un comando e scriverlo su un file.

Il formato generale per reindirizzare e scrivere l'output in un file è il seguente:

output > output del nome del file >> nome del file 

Devi avere i permessi di scrittura sul file. In caso contrario, riceverai un errore di autorizzazione negata.

Ecco un semplice esempio che mostra come reindirizzare l'output del eco comando in un file:

echo "questa è una riga" > file.TXT

Per evitare di sovrascrivere i file esistenti, abilitare l'opzione "noclobber" con il tasto impostato incorporato:

set -o noclobberecho "questa è una riga" > file.TXT
bash: file.txt: impossibile sovrascrivere il file esistente 

Il >| operatore consente di ignorare l'opzione "noclobber" di Bash:

set -o noclobberecho "questa è una linea" >| file.TXT

Il >> operatore aggiunge l'output alla fine del file, invece di sovrascrivere il file:

echo "questa è una linea" >> file.TXT

Usa il printf comando per creare un output complesso:

printf "Ciao, sono %s.\n" $USER > file.TXT

Se vuoi scrivere più righe in un file, usa il reindirizzamento del documento Here (Heredoc).

Ad esempio, puoi passare il contenuto al gatto comando e scrivilo in un file:

gatto << EOF > file.txt La directory di lavoro corrente è: $PWD Hai effettuato l'accesso come $(whoami) EOF 

Per aggiungere le righe, cambia > con >> prima del nome del file:

gatto << EOF >> file.txt La directory di lavoro corrente è: $PWD Hai effettuato l'accesso come $(whoami) EOF 

Puoi scrivere l'output di qualsiasi comando in un file:

date +"Anno: %Y, Mese: %m, Giorno: %d" > file.TXT

L'uscita di Data comando verrà scritto nel file.

Scrivere su un file usando il tee Comando #

Il tee comando legge dallo standard input e scrive sia sullo standard output che su uno o più file contemporaneamente.

echo "questa è una linea" | file di tee.TXT

Il tee il comportamento predefinito del comando è sovrascrivere il file specificato, come il > operatore. Per aggiungere l'output al file, invoca il comando con il -un (--aggiungere) opzione:

echo "questa è una linea" | tee -a file.TXT

Se non vuoi il tee per scrivere sullo standard output, puoi reindirizzarlo a /dev/null:

echo "questa è una linea" | file di tee.txt >/dev/null

Per scrivere il testo in più di un file, specificare i file come argomenti per il tee comando:

echo "questa è una linea" | tee file_1.txt file_2.txt file_3.TXT

Un altro vantaggio del tee comando è che puoi usarlo insieme a sudo e scrivere su file di proprietà di altri utenti. Per aggiungere del testo a un file per il quale non disponi dei permessi di scrittura, anteponi sudo prima tee:

echo "questa è una linea" | file sudo tee.TXT

Il eco l'output del comando viene passato come input al tee, che eleva i permessi sudo e scrive il testo nel file.

Conclusione #

In Linux, per scrivere del testo su un file, usa il tasto > e >> operatori di reindirizzamento o il tee comando.

Se hai domande o commenti, non esitare a lasciare un commento.

OpenTTD vs Simutrans
Creare la tua simulazione di trasporto può essere divertente, rilassante ed estremamente allettante. Ecco perché devi assicurarti di provare quanti pi...
Tutorial OpenTTD
OpenTTD è uno dei giochi di simulazione aziendale più popolari in circolazione. In questo gioco, devi creare una meravigliosa attività di trasporto. T...
SuperTuxKart per Linux
SuperTuxKart è un fantastico titolo progettato per offrirti l'esperienza di Mario Kart gratuitamente sul tuo sistema Linux. È piuttosto impegnativo e ...