Inserire del testo in un file usando la shell

Durante la scrittura script bash, leggere e scrivere file è uno dei compiti più comuni. Ad esempio per salvare l’output di un comando su un file o semplicemente per manipolarlo in bash si utilizzano diversi comandi, di seguito ne sono riportati alcuni:

  • Utilizzando gli operatori direzionali
  • Usando il comando tee
  • Utilizzo di heredoc
  • Uso del comando printf

Uso degli operatori direzionali

In generale possiamo usare due operatori direzionali  che si possono usare per scrivere un file durante lo scripting di bash

parentesi angolare singola “>”

  • sovrascrive i dati precedentemente presenti nel file con i nuovi

parentesi angolare doppia “>>”

  • aggiunge nuovi dati nel file

Per utilizzare uno degli operatori direzionali, usate:

echo <“data”> <directional-operator> <filename>

Per esempio, per aggiungere dati a un file che attualmente è vuoto o per sovrascrivere i dati in un file, usate la sintassi sopra descritta in questo modo:

echo “Hello Linuxiano 1” > miofile.txt
Inserire-testo-nel-file-usando-la-shell

La sintassi sopra scrive e crea il file.

Inserire testo nel file usando la shell con il comando tee

Uso Base

tee [ -a ] [ -i ] [ File … ]

Il comando tee prende il nome dai raccordi a T utilizzati solitamente in idraulica per “sdoppiare” un flusso in due. Capiamo quindi subito dal nome che questo comando potrebbe servire per sdoppiare qualcosa.
Tee su Linux fa proprio questo: prende il contenuto dello standard input, lo mostra sullo schermo e contemporaneamente lo scrive su uno o più file.

Di seguito un esempio:

echo “data” | tee

Per aggiungere dei dati a un file:

echo “Benvenuti su Linuxiano” | tee miofile.txt

Ricordate che la sintassi sopra descritta non è solo utile per scrivere i dati, ma può essere utilizzata anche nel caso in cui si voglia sovrascrivere i dati attualmente presenti nel file con i nuovi dati.

Quindi, se si vogliamo mantenere i dati attuali e  scrivere il file con un nuovo insieme di dati, usiamo il flag -a:

echo “saluti” | tee -a miofile.txt

Per aggiungere gli stessi dati a più file:

echo “saluti” | tee -a miofile.txt miofile2.txt miofile3.txt

Per modificare un file di proprietà di altri utenti con l’aiuto di privilegi di amministratore come questo:

echo “Questo è un file di prova” | sudo tee -a miofile1.txt

Inserire testo nel file usando la shell con il comando printf

Poiché i modi sopra descritti non consentono all’utente di aggiungere una formattazione ai dati, se volete aggiungere una formattazione specifica ai dati usate printf:

printf “Saluti da linuxiano nQuesto è un file di prova.n” >> miofile1.txt

Usare Heredoc

Un altro modo per scrivere un file in bash è usare il formato here document, che non è una sorta di comando ma è più un formato da seguire per scrivere più righe di dati:

cat << [delimitatore]

dati…………

[delimitatore]

Nella sintassi cat viene usato per leggere i dati e delimitatore è una sorta di confine per i dati; potrebbe essere una stringa o un nome di file. Nella pratica normale si usa di solito END o EOF come delimitatore, ma tutto dipende dalle preferenze dell’utente.

Per esempio, ho creato un file .sh e ho usato il formato di heredoc in questo modo:

#! /bin/bash

cat << MYFILE

Saluti da linuxiano

Questo è un file di testo creato con Heredoc

MYFILE

Salvate il file sopra con mioscript.sh e da te terminale scrivete:

bash mioscript.sh

Fonte: https://linuxiano.altervista.org/2023/01/inserire-testo-nel-file-usando-la-shell/

Se vuoi sostenerci, puoi farlo acquistando qualsiasi cosa dai diversi link di affiliazione che abbiamo nel nostro sito o partendo da qui oppure alcune di queste distribuzioni GNU/Linux che sono disponibili sul nostro negozio online, quelle mancanti possono essere comunque richieste, e su cui trovi anche PC, NAS e il ns ServerOne. Se ti senti generoso, puoi anche donarmi solo 1€ o più se vuoi con PayPal e aiutarmi a continuare a pubblicare più contenuti come questo. Grazie!

Hai dubbi o problemi? Ti aiutiamo noi!

Se vuoi rimanere sempre aggiornato, iscriviti al nostro canale Telegram.
Se vuoi ricevere supporto per qualsiasi dubbio o problema, iscriviti alla nostra community Facebook o gruppo Telegram.
Cosa ne pensi? Fateci sapere i vostri pensieri nei commenti qui sotto.
Ti piace quello che leggi? Per favore condividilo con gli altri.
Amazon Music
Scopri le ultime offerte per dischi ssd su Acquista su Amazon
Scopri le ultime offerte per memorie RAM DDR su Acquista su Amazon
Scopri le ultime offerte per Chromebook su Acquista su Amazon
Scopri le ultime offerte per Raspberry su Acquista su Amazon

Potrebbero interessarti anche...

Lascia un commento

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

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.