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 prèvia
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.

Menú