replace

Search & Replace su più file da riga di comando

script

Se vogliamo sostituire del testo su tutti i file che contengono il testo originale all'interno di un percorso possiamo fare in questo modo:

grep -RlZ "TESTO_ORIGINALE" . | xargs -0 -l sed -i -e 's/TESTO_ORIGINALE_ESC/TESTO_DA_SOSTITUIRE_ESC/g'

Per *_ESC intendo che il testo deve considerare l'escaping delle "/".

Ad esempio:

grep -RlZ "/system_home/eric/" . | xargs -0 -l sed -i -e 's/\/system_home\/eric\//\/home\/eric_arch\//g'

Sostituisce tutti i /system_home/eric/ con /home/eric_arch/.

Il grep iniziale è una ottimizzazione per evitare di fare il search & replace di tutti i file. Per vedere se sta estranendo i file giusti:

[code]