[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: