Re: Una pregunta tonta sobre tr
> Pues menos mal que no querias desperdiciar ancho de banda ! :-)
> Tienes que hacer un bucle. Por cierto no creo que nada sea más rápido
> que tr ( en general cuantas más cosas es capaz de hacer es más lento y
> tr solo hace eso )
> El bucle seria algo asi dado un archivo con una columna con ips y otra
> con el nombre de la máquina:
> while $(cat <el_susodicho_fichero>); do
> IP=primeracolumna;
> NAME=segundacolumna
> cat archivo_a_sustituir|tr $IP $NAME >>
> archivosalida.txt; done
En este caso creo que Perl es mas rapido. Por que? Cuenta llamadas al
sistema... Especificamente las fork(), que son las mas caras, aunque
tambien pesan las open() y los diferentes variantes de sysread(). (NOTA:
Yo soy Perlero. Los nombres de llamada al sistema son como creo que van,
pero puede que me equivoque en el nombre).
- cat <el_susodicho_fichero>: Un fork (para ejecutar cat). Un open, un
sysread por cada linea, un close.
- Dentro del ciclo: Por cada linea del archivo original (es lo que hace el
bucle):
- Un fork, un open, muchos sysread, un close para el cat.
- Un fork para el tr
- Un open, un syswrite y un close para grabar en archivosalida.txt
No le entiendo muy bien a la logica del programa que propones... Pero
bueno, como sea, si lo haces en Perl te ahorras una cantidad fuerte de
forks.
Saludos,
--
Gunnar Wolf - gwolf@campus.iztacala.unam.mx - (+52-55)5623-1118
Reply to: