Monday, November 8, 2010

Unix según pasan los años



Hoy tenia que recuperar unas direcciones de correo electronico de un log de mails rechazados.

El archivo estaba formado por entradas como esta :

------ This is a copy of the message, including all the headers. ------

Return-path: <'ventas@xxxxxxxxxxxx.com.ar'>

Received: from [186.xxx.xxx.221] (helo=mail.xxxxxxxxxxxx.com.ar)

by srv487.xxxxxxxxxxxcom with esmtpa (Exim 4.69)

(envelope-from <'ventas@xxxxxxxxxxxxx.com.ar'>)

id 1PFJna-0004Ho-G4

for acordoba@xxxxxxxxxxx.com.ar; Sun, 07 Nov 2010 22:57:43 -0600

Message-ID: <20101107.WCBBOSMQOKYZTBHS@xxxxxxxxxxxxx.com.ar>

From: "Ventas" <'ventas@xxxxxxxxxxxx.com.ar'>

To: "ARGENCOBRA"

Reply-To: "Ventas"

Subject: Nueva lista de precios

Date: Mon, 8 Nov 2010 01:56:46 -0300

X-MSMail-Priority: Normal

X-Mailer: Microsoft Outlook Express 6.00.3790.1830 (srv03_sp1_rtm.050324-1447)

X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.1830 (srv03_sp1_rtm.050324-1447)

MIME-Version: 1.0

Content-Type: multipart/related; boundary="----=_NextPart_849_4281_99557134.92858520"


De este archivo tenia que recuperar las entradas que hacían referencia a los destinatarios en el campo To:, para depurar la base de datos y actualizar las direcciones de mails de los clientes.

Intuía que tenia que usar grep y tal vez awk, pero como no son comandos que utilice regularmente, recurrí a mi biblioteca y allí perdido entre los libros de seguridad se encontraba uno de los incunables de mi colección.


Increíblemente este libro de 1994 aun podía ayudarme.

Sabemos que 16 años en Tecnología es lo mismo que hablar de eras geológicas. En 1994 surgía la primer beta del navegador Netscape, el cual luego tuvo que luchar contra las practicas monopólicas de Microsoft quien incluía su navegador Internet Explorer en sus sistemas operativos.



Bueno en 1994 aun no existía Internet Explorer. Pero si fue lanzado al mercado Windows NT 3.5 la segunda release del sistema operativo.
Para que tengan una idea de lo que significan 16 años, esta version de Windows NT se ejecutaba en 90MB de memoria, Windows 7 actualmente requiere 16GB.




Esta versión fue la primera de Microsoft en incorporar TCP/IP en forma estable, claro que por aquella época Bill Gates decia en COMDEX "I see little commercial potential for the Internet for at least 10 years" entonces sacaba su MSN Classic, un servicio de DIAL-UP pago que competia con Internet.




En el 94 Linux estaba en la versión 1.0, Linus Torvald lo anunciaba así en la lista comp.os.linux.announce

Article 573 of comp.os.linux.announce:
Xref: cstreet comp.os.linux.announce:573 comp.os.linux.development:4739
 comp.os.linux.misc:7996
Path: cstreet!backbone!crcnis1.unl.edu!wupost!howland.reston.ans.net!EU.net!sunic!
 news.funet.fi!hydra.Helsinki.FI!usenet
From: Linus Torvalds 
Newsgroups: comp.os.linux.announce,comp.os.linux.development,comp.os.linux.misc
Subject: Linux 1.0---A better UNIX than Windows NT
Followup-To: comp.os.linux.misc
Date: 14 Mar 1994 12:51:16 GMT
Organization: University of Helsinki
Lines: 138
Approved: linux-announce@tc.cornell.edu (Lars Wirzenius)
Message-ID: <2m1mk4$qc9@hydra.Helsinki.FI>
NNTP-Posting-Host: hydra.helsinki.fi
Summary: Linux 1.0 released
Keywords: Linux Kernel 1.0 Academy Awards
X-Moderator-Added-Keywords: universe, end of

Finally, here it is.  Almost on time (being just two years late is
peanuts in the OS industry), and better than ever:

 Linux kernel release 1.0



GNU/Linux no es un Unix puro, ya que no se desprende del árbol que tenia a Unics como la raíz de los sistemas operativos Unix actuales, pero su concepción lo hacen un hijo adoptivo.



Volviendo al libro, contiene mas de 1000 tips para aplicar en Unix. 
Claro que van desde programación en shell hasta cosas que tal vez nadie use hoy en día, salvo Richard Stallman, como configuración de UUCP.

Mirando entre los ejemplos, encontre que ejecutando la siguiente cadena de comandos :

grep To: testmail2.txt | grep '<' | grep -v Reply | sort -ur | awk '{gsub("To: ","");print}' | awk '{gsub("\" <","\";<");print}'

de la entrada original que se encuentra al comienzo del post, nos queda ( por supuesto que las x estan solo para ofuscar las direcciones, que por otro lado no funcionan ):


"ANDRES xxxxxxxxxxxx";
"ANDRADE xxxxxxxxxxxx S.R.L.";
"ANA MARIA xxxxxxxxxxxx";
"xxxxxxxxxxxx RUBEN ALBERTO";
"xxxxxxxxxxxx S.R.L.";
"xxxxxxxxxxxx FRANCISCO JOSE";
"xxxxxxxxxxxx IRINEO";
"xxxxxxxxxxxx PABLO";
"xxxxxxxxxxxx ALMECO SACICYM";



La fecha en que estos comandos fueron creados y la utilidad que aun tienen nos hace comprender que Unix y por extensión Linux son los sistemas operativos que mas versatilidad tienen, fuera de toda discusión.

Grep fue introducido en Unix el 3 de marzo de 1973 en el Manual for Unix Version 4

Awk nació en 1977

Uniq y sort son comandos nativos de Unix


Al final de la pelicula Casablanca, Humprey Bogart dice una frase que viene perfecta para significar lo que es Unix, cuando uno lo conoce y descubre su potencial :

"«Louis, creo que este es el principio de una gran amistad»."





No comments: