A este le puse por título TIP por que no es mas que eso: otro ayuda memoria para la posteridad, a saber:

 

  • Tenés dos archivos con texto: archivo1 y archivo2 como en el ejemplo de la captura de pantalla.
  • Necesitás identificar las líneas duplicadas o simplemente restarlas como en el ejemplo y mostrar únicamente las que no se repiten.

 

La única forma que conozco de lograr esto en Bash sin recurrir a complicados regex de la muerte forma mas rápida de lograr esto sin tener que pensar mucho es como tantas otras veces: GREP.  Alguien debería hacerle un pedestal al autor original de grep, sin duda.

Los switchs que vas a utilizar en grep son:

  1. -x  match únicamente si toda la línea coincide.
  2. -f  para en lugar de utilizar stdin o una palabra como argumento, usar un archivo, de a una línea por vez.
  3. -v  para reverse search, restar las líneas que coincidan en archivo2 de archivo1.

 

Utilizar grep en Bash para restar el contenido de un archivo de otro linea a linea en la consola de comando de Linux

Utilizar grep en Bash para restar el contenido de un archivo de otro linea a linea en la consola de comando de Linux

 

Continúa leyendo

Otro título sugerido: Yo contra el correo basura – Round 2

Prólogo:

Me acaba de llegar otra de esas odiosas cadenas de email en donde se prometen diferentes resultados en función de la cantidad de gente a la que uno la reenvíe, partiendo de la base de que con 10 personas es suficiente para que la persona que amas te llame por teléfono y llegando a sugerir que el hecho de ganar la lotería está íntimamente ligado al funcionamiento del protocolo SMTP encapsulado sobre TCP/IP.

Para que tengan una idea de la efectividad de este tipo de campañas inciadas por SPAMMERS como medio para recabar direcciones de correo electrónico, basta con contar cuantas hay contenidas en un solo mensaje de este tipo.

He guardado este mensaje en formato texto plano en cualquier lugar del disco rígido para luego poder contar cuantas direcciones de email contiene (incluyendo la mía, que sigue viaje, metida en el medio de la cadena, hasta llegarle a alguien que gana dinero por hacer spam).

En windows, seguramente tendrán que descargar algún programa de nombre parecido a «Advanced email counter and organizer» probablemente versión trial o shareware que podrán crackear bajando el respectivo crack de astalavista.box.sk o similares, esquivando previamente el virus camuflado contenido en el .zip.

Una vez crackeado, deberán ejecutarlo, ir a file / open / from archive o algo parecido y hacer uno o dos clicks mas, siempre y cuando sepan inglés.

En linux:

~ $ grep @ FW\:\ METAFISICA\ PURA…\ EL\ PODER\ DE\ LA\ ATRACCION.eml | wc
297 1010 21327

En una sola cadena de email, 1010 direcciones de correo electrónico diferentes.

¡Usen CCO, corten las cadenas de mensajes carajo!

Por si no se hubiera entendido como funciona mi invento contador de direcciones de email:

grep @ archivo.eml | wc

Simplemente filtrar con grep todas las líneas que tienen @ y pasárselas al WordCounter (wc) por medio de un | (pipe).