Cercar i canviar text dins un caramull d’arxius


Canviar la mateixa paraula (o frase) per una altre dins una bona quantitat d’arxius, pot ser una feinada. Caldria obrir-los tots i usar l’eina de reemplaçar que portés l’editor de torn. Hi deu haver –ara mateix no se quin– qualque editor amb el concepte «projecte» que permeti fer els canvis a tots els arxius que formen el projecte.

Per a fer el canvi, basta que tenguis el comandament find i el llenguatge Perl instal·lats. Una combinació de les dues coses servirà per a fer un canvi global de text. A l’exemple canviem l’adreça de correu [email protected] per [email protected]
find ./ -type f -name ‘*.html’ -exec perl -pi -e ‘s/josep\@nose.com/josep.cansat\@de-spam.nose.com/;’ {} \;
Cercarà dins els arxius que diguis a través del comandament find: en aquest cas, tots els regulars (-type f) que tenen el nom acabat en .html (-name ‘*.html’) i que estan a partir del directori on ens trobam (./). Find només troba arxius pel seu nom, no en fa els canvis. El passa –el nom– al comandament que ve darrere -exec, el perl en aquest cas, mitjançant els claudators ({}) i tanca l’ordre amb «\;».
L’ordre principal pel perl és ‘s/text a llevar/text a posar/;’. A l’exemple, cal dir que les ensaïmades (@) són part del text o perl les ignorarà. S’aconsegueix amb una barra invertida (\) i a l’acció se li sol dir «escapar», en aquest cas cal «escapar les ensaïmades» 🙂
Si l’arxiu conté més d’un pic la paraula a canviar, l’ordre Perl les tindrà totes en compte.
Per a més detalls:
El comandament find és immens. Trobaràs més informació a les planes de manual que pots cridar amb el comandament man find o llegint aquest article d’about.com. Si tens un calendari lunar a mà, find té opcions abastament com per canviar només els arxius que hagis creat (que no modificat) en lluna plena.
Perl és un llenguatge de programació també carregat de possibilitats i si en vols aprendre més, el millor és un bon llibre. A ca’n O’Reilly en trobaràs. En línia hi ha un grapat de llocs, com perl.com (també d’O’reilly), Perl Mongers o Perldoc.com.

Este post ha sido traido de forma automatica desde https://web.archive.org/web/20140625063149/http:/bulma.net/body.phtml?nIdNoticia=2077 por un robot nigromante, si crees que puede mejorarse, por favor, contactanos.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.