Come Sostituire Testo in Batch da Shell con Sed

Pubblicato da Yuri Carlenzoli | 01 dicembre 2014

Ecco il semplice metodo che consente di sostituire in batch con la shell di Linux una stringa di testo in molti files contemporaneamente, solamente con un comando.

sed-sostituire-testo-batch-replace

L'aggiornamento di files può essere molto semplice ma a volte anche ripetitivo e noioso, sopratutto se si usa Linux e si hanno molti script, files testuali e magari anche codice di programmazione, solo per cambiare una riga od un pezzo di ogni files si potrebbe perdere molto tempo, grazie a SED, la shell ed un comando lo si può fare istantaneamente.

Come cercare e sostituire con sed da shell

Diversamente dallo script di sed per inserire testo sulle linee desiderate, anche se in particolari situazioni risulta più comodo, questo è solo un comando che permette di alterare il testo dei documenti o files testuali grazie a sed, il quale per eccellenza su Linux è il comando/programma di shell che permette di sostituire testo.

In pratica, senza far niente di particolare, solamente usando sed ed inserendo testo con lo stesso, utilizzando il suo semplice metodo che permette di definire il testo che dev'essere sostituito, che, in questo caso sono solo parti di testo scritte semplicemente, ovvero in questo articolo viene spiegato come farlo senza regex, e, selezionando molti files in base all'estensione anteponendo alla stessa una wildcard al posto del loro nome si potranno cambiare parti testuali dei files in batch su più files contemporaneamente.

Ad esempio, se ci si posiziona con la shell in una directory contenente files testuali con estensione .txt, se si volesse sostituire la parola "giallo" presente in tutti i files con "NON UN COLORE" basterà digitare:

sed -i 's,giallo,NON UN COLORE,g' *.txt

Concludo l'articolo dicendo solamente che, a differenza del metodo che permette di aggiungere parti di testo a file testuali anche in batch con sed, questo metodo lo trovo più idoneo per essere utilizzato per scopi non ripetitivi, quindi la creazione di script eseguibili che invocano il comando non è fondamentale.

Possibili utilità di questo script potrebbero essere quelle di cambiare le date dei copyright, dei nomi presenti nei files, delle variabili d'ambiente od altro, e sono dei possibili utilizzi, i quali non richiedono di fare un files apposito per sed ne di aprire molti files per modificarli, con un comando si modificherà il contenuto di tutti i files. Voi per cosa lo usate od userete sed per modificare files in batch?

Lascia un commento

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

Moderazione dei commenti attiva. Il tuo commento non apparirà immediatamente.