[FoLUG] Script sostituzione parole

ivan i.f-ml00@darthxiong.net
Gio 6 Apr 2006 09:53:25 CEST


On 04 04, Enrico Strocchi wrote:
> Come posso fare per sostituire una certa parola all'interno di un file con 
> un'altra? Con sed si arriva a fare?

ok ormai ne ho lette a sufficienza ;)

perl -pi.bak -e 's/\bPAROLA\b/SOSTITUTO/g' file1 file2 file3

commento:
1) -p crea un loop di lettura di linee da STDIN attorno alle istruzioni 
2) -i.bak ti rinomina i file di origine aggiungendo l' estensione e poi
lavora sugli originali
3) -e esegue quanto segue
4) circondando il pattern di sostituzione con \b si evita che vengano
sostituite occorrenze all' interno di parole. per esempio, l' esempio di
davide "sed 's/strocchi/patacca/' " cambierebbe "pastrocchio" in
"papataccao" che probabilmente non e' desiderato
5) g sostituisce tutte le occorrenze. aggiungere anche 'i' per rendere
la sostituzione "case insensitive"
6) ricordo che modifica i file originali, ma prima li backuppa con l'
estensione specificata da -i{.qualcosa}

piu' facile farlo che commentarlo :)

-- 
  (@_ Ivan Fabris, S. Sofia (FC,it) PowerPC e Debian GNU/linux SID _*)
  //\         www.folug.org    pgp key @ www.keyserver.net         /\\
  V_/_                  lunga vita e prosperita'                  _\_V



Maggiori informazioni sulla lista FoLUG