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.

Si uses el sistema operatiu GNU amb Linux, 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 josep@nose.com per josep.cansat@de-spam.nose.com

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.

Compartir

Entrada anterior
El preu del combustible
Entrada següent
Cultura lliure

2 comentaris. Leave new

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *

Fill out this field
Fill out this field
Introduïu una adreça electrònica vàlida.

Aquest lloc utilitza Akismet per reduir els comentaris brossa. Apreneu com es processen les dades dels comentaris.