Esto lo escribo solamente como un ejemplo redondito del porqué una plataforma Unix o Linux es mucho más poderosa que una plataforma Windows. Ejemplos como este se suceden varias veces al día; el tiempo ganado ampliamente supera el invertido para aprender estas herramientas.
El trabajo que tenía que realizar era, de un archivo de log, saber cuales LAs se estaban supervisando. No entraré en detalle acá de qué significa una LA, pero consideren que se representa como un número. En otras palabras, tenía que extraer de un log cuales de esos "números" existían.
El log en cuestión estaba en un archivo que pesaba 333MB. Sí, un archivo de texto de 333 Megas. ¿Cantidad de lineas del archivo? Más de cinco millones.
Por supuesto, no me acordaba del formato interno del archivo, entonces debía ver algunas lineas del mismo para recordármelo. Piensen un segundo cómo editarían un archivo de esta magnitud en Windows. ¿Ya lo pensaron? Vuélvanlo a considerar, y sigan leyendo luego de que se den cuenta de cuantas veces van a tener que reiniciar la PC hasta poder terminar de trabajarlo.
Bueno, en Pytonisa (que es el Linux que tengo instalado en la oficina) hice un head statlogs_20050102.txt
, y me mostró instantáneamente las primeras diez lineas del archivo. Allí pude ver cual era el formato:
15842;S;01158353525;15842;Message delivered;00:00 15842;S;02616502229;15842;Message delivered;00:00 15005;S;02362535926;15005;Message delivered;00:00 15842;S;02616592586;15842;Message delivered;00:00 15842;S;03814423758;15842;Message delivered;00:00 15004;S;01154975858;15004;Message delivered;00:00 15004;S;02652483462;15004;Message delivered;00:00 15005;S;01158335496;15005;Message delivered;00:00 15005;S;01158268262;15005;Message delivered;00:00 15004;S;02914189236;15004;Message delivered;00:00
Yo tenía que ver cuales eran todos los números que estaban en la primer columna. ¿Complicado? ¡Para nada! Usé la orden...
- ::
-
awk -F';' '{print $1}' statlogs_20050102.txt | sort -u
...que me dió el resultado deseado:
111 15000 15002 15003 15004 (etc)
¡¡en 78 segundos!! ¡¡más de cinco millones de registros!! (consideren que es una PC de escritorio que está siendo compartida por varios usuarios; ya que estamos, les comento que hace 207 días que está prendida, trabajando sin chistar, sin tener que reiniciarla).
Y aún más importante, en este minuto y monedas, yo no tuve que hacer nada: así hubiese tardado diez minutos, trabajó la máquina sola, yo perdí veinte segundos en armar la orden y luego estuve leyendo mails, etc...
¿Cómo habrían hecho esto en Windows?