Sostituire una stringa in un file

Archiviato in: shell — olaolaonline 11 Settembre 2007 @ 10:45

Mi capita spesso di dover sostituire tutte le occorrenze di una certa stringa in uno o piu’ file. Bene, per il momento ho imparato a farlo in tre modi, per la verita’ molto simili tra loro. I comandi utilizzati sono sed, tr e il linguaggio perl.

Cominciamo con tr, la sintassi da utilizzare e’ la seguente

tr stringa_da stringa_a < file_da_elaborare

dove stringa_da rappresenta il testo da sostiutire, mentre stringa a e’ il nuovo testo. Notare il simbolo di redirezione “<”.

Per quanto riguarda il comando sed invece dobbiamo scrivere

sed ’s/stringa_da/stringa_a/’ file_da_elaborare.

Infine, se vogliamo usare il linguaggio perl dobbiamo usare una sintassi molto simile a quella precedente

perl -pi -e ’s/stringa_da/stringa_a/’ file_da_elaborare.

E’ utile far notare una cosa. Mentre per i primi due comandi, tr e sed, il risultato della sostituzione viene scritto a video, ed e’ quindi possibile reindirizzarlo in un ulteriore file, utilizzando il linguaggio perl le sostituzioni avvengono direttamente nel file di origine, il che puo’ essere piuttosto pericoloso.

Per contro, l’utilizzo del perl permette di agire su piu’ file contemporaneamento. Questo e’ possibile anche con sed, ma in questo caso di avra’ un solo output.

Nessun commento »

Non c’è ancora nessun commento.

RSS feed dei commenti a questo articolo. TrackBack URI

Lascia un commento