Il comando sed (Stream Editor) in Linux è uno strumento potente per la manipolazione del testo e la modifica dei file. Consente agli utenti di cercare, sostituire, inserire ed eliminare testo nei file, rendendolo essenziale per l’automazione e la creazione di script. In questa guida vedremo come utilizzare il comando sed per aggiornare i file in Linux con esempi pratici.
Il comando sed è ampiamente utilizzato per:
✅ Sostituzione del testo – Sostituire facilmente parole, frasi o modelli nei file.
✅ Elaborazione batch – Modificare più file contemporaneamente tramite script.
✅ Efficienza – Modificare rapidamente file di grandi dimensioni senza aprirli.
✅ Modifica inline – Aggiornare i file direttamente dalla riga di comando.
✅ Automazione – Utilizzarlo in script per gestire modifiche ripetitive ai file.
La sintassi generale del comando sed è:
sed [OPZIONI] 's/testo-vecchio/testo-nuovo/g' nome_file
Dove:
Per sostituire una parola specifica in un file, usa:
sed 's/Linux/Ubuntu/g' file.txt
Questa operazione sostituisce la prima occorrenza di “Linux” con “Ubuntu” in ogni riga di file.txt.
Per sostituire tutte le occorrenze di una parola globalmente in un file:
sed 's/Linux/Ubuntu/g' file.txt
Il flag g assicura che ogni occorrenza nella riga venga sostituita.
Per apportare modifiche direttamente al file senza mostrare l’output:
sed -i 's/Linux/Ubuntu/g' file.txt
L’opzione -i abilita la modifica in-place, aggiornando direttamente il file originale.
Per modificare solo determinate righe in un file, specifica il numero di riga:
sed '3s/Linux/Ubuntu/' file.txt
Questa operazione sostituisce “Linux” con “Ubuntu” solo nella riga 3.
Per eliminare tutte le righe contenenti una parola specifica, usa:
sed '/testo-indesiderato/d' file.txt
Questo comando rimuove tutte le righe che contengono “testo-indesiderato”.
Per rimuovere una riga specifica:
sed '5d' file.txt
Questo comando elimina la riga 5 da file.txt.
Per aggiungere una riga prima di una riga specifica:
sed '3i\Questa è una nuova riga' file.txt
Questo comando inserisce “Questa è una nuova riga” prima della riga 3.
Per aggiungere una riga dopo una riga specifica:
sed '3a\Questa è una riga aggiunta' file.txt
Questo comando aggiunge “Questa è una riga aggiunta” dopo la riga 3.
Per sostituire il testo in più file contemporaneamente:
sed -i 's/Linux/Ubuntu/g' *.txt
Questo comando modifica tutti i file .txt nella directory, sostituendo “Linux” con “Ubuntu”.
Per eseguire più modifiche contemporaneamente:
sed -i -e 's/Linux/Ubuntu/g' -e 's/Server/Cloud/g' file.txt
Questo comando sostituisce “Linux” con “Ubuntu” e “Server” con “Cloud” in file.txt.
Per sostituire numeri in un file:
sed 's/[0-9]/#/g' file.txt
Questa operazione sostituisce tutti i numeri con #.
Per estrarre e visualizzare le righe dalla 5 alla 10:
sed -n '5,10p' file.txt
L’opzione -n impedisce la stampa dell’intero file, mostrando solo le righe 5-10.
🔹 Esegui sempre il backup dei file prima di usare -i – Evita la perdita accidentale di dati.
🔹 Utilizza espressioni regolari – Potenti per modifiche complesse.
🔹 Testa i comandi prima di applicare le modifiche – Esegui sed senza -i per vedere l’output.
🔹 Usa script per l’automazione – Combina sed con script di shell per elaborazioni in batch.
Il comando sed è uno strumento versatile ed efficiente per aggiornare i file in Linux. Che tu abbia bisogno di sostituire testo, eliminare righe o inserire contenuti, sed può automatizzare e semplificare queste attività.