reemplazo masivo en zonas DNS
Alvaro Herrera
alvherre en alvh.no-ip.org
Mie Ago 2 14:10:31 CLT 2006
Miguel Oyarzo O. escribió:
> At 11:38 02-08-2006, you wrote:
> >Miguel Oyarzo O. escribió:
> >En Perl deberia ser trivial, algo como
> >
> >while (<>) {
> > if (/^(.*\s)(\d+)(\s*;\s*serial)/) {
> > printf "$1%d%3", $2 + 1;
> > } else {
> > print $&;
> > }
> >}
Me imagino que todo el mundo se dio cuenta del vergonzoso error que hay
en este script, ademas de la mejora obvia que puede hacerse. Deberia ser
while (<>) {
if (/^(.*\s)(\d+)(\s*;\s*serial$)/) {
printf "$1%d$3\n", $2 + 1;
} else {
print $_;
}
}
> programe algo similar ayer en PERL y tambien me resulta, pero yo
> buscaba una herramienta especializada que por ejemplo tome un
> directorio y actualice las seriales sin mas tramite.
Bueno, guardas este script en ~/bin y le pones el siguiente nombre:
herramienta-especializada-en-incrementar-serial
y listo, tienes tu herramienta :-) Obviamente puedes hacerle mejoras
como que reciba los nombres de archivo como argumento y lo llamarias
asi:
cd /donde/estan/los/archivos
herramienta-especializada-en-incrementar-serial *
o bien
find /donde/estan/los/archivos -type f | xargs herramienta-especializada-en-incrementar-serial
Yo agregaria cosas como un contador para saber cuantas lineas modifico
en un archivo. Si es distinto de 1 para algun archivo, examinar el
archivo y corregir la expresion regular apropiadamente.
--
Alvaro Herrera http://www.amazon.com/gp/registry/5ZYLFMCVHXC
"Cómo ponemos nuestros dedos en la arcilla del otro. Eso es la amistad; jugar
al alfarero y ver qué formas se pueden sacar del otro" (C. Halloway en
La Feria de las Tinieblas, R. Bradbury)
Más información sobre la lista de distribución Linux