Skip to content

Cheat sheet comandi Sed

Sed è un editor di flusso utilizzato per eseguire trasformazioni e operazioni di base sul testo. È uno degli strumenti di elaborazione testo più potenti nei sistemi Unix.

Comandi di base

sed 's/old/new/' file

Sostituisce la prima occorrenza di “old” con “new” nel file.

sed 's/old/new/g' file

Sostituisce tutte le occorrenze di “old” con “new” nel file.

sed -n 'p' file

Stampa solo il contenuto del file.

sed 'd' file

Elimina il contenuto del file.

sed '2d' file

Elimina la seconda riga del file.

sed '2,4d' file

Elimina dalla seconda alla quarta riga del file.

sed '/pattern/d' file

Elimina le righe che contengono il pattern.

sed -i 's/old/new/g' file

Esegue la sostituzione nel file e salva le modifiche.

Comandi avanzati

sed -e 'comando1' -e 'comando2' file

Esegue più comandi.

sed -f script.sed file

Legge i comandi da un file script.

sed 's/old/new/2' file

Sostituisce solo la seconda corrispondenza.

sed 's/old/new/3g' file

Sostituisce tutte le corrispondenze a partire dalla terza.

sed 's/\(old\)/\U\1/g' file

Sostituisce tutti gli “old” con maiuscole.

sed 's/\(old\)/\L\1/g' file

Sostituisce tutti gli “old” con minuscole.

sed 's/\(old\)/\E\1/g' file

Sostituisce tutti gli “old” con maiuscole e ripristina il caso dopo la sostituzione.

sed 's/\(old\)/\e\1/g' file

Sostituisce tutti gli “old” con minuscole e ripristina il caso dopo la sostituzione.

sed 's/old/new/w output.txt' file

Scrive il risultato della sostituzione in un file.

sed -n 's/old/new/p' file

Stampa solo le righe sostituite.

sed -n '/pattern/p' file

Stampa solo le righe che contengono il pattern.

sed -n '1,5p' file

Stampa solo dalla prima alla quinta riga.

Pattern di selezione a passi

sed -n 'n~mp' file

Stampa ogni m-esima riga a partire dalla riga n.

Esempi:

  • sed -n '1~2p' file: Stampa una riga sì e una no (righe dispari).
  • sed -n '2~2p' file: Stampa le righe pari.
  • sed -n '1~3p' file: Stampa ogni terza riga a partire dalla prima.
  • sed -n 'n~2p' file: Questo pattern continua per qualsiasi riga di inizio n.