miércoles, noviembre 04, 2009

awk continúa pateando traseros

En comp.programming alguién envió un interesante programa de perl para imprimir sólo la primera aparición de cada línea (o sea, eliminar líneas repetidas) de un archivo preservando el orden de las mismas (o sea, no teniendo que ordenar el archivo previamente).

Recordemos que la mayoría de las veces esta tarea se realiza con el comando de Unix "uniq", que requiere que se ordene el archivo previamente con el comando "sort".

La línea es:

perl -ne 'print $_ unless $seen{$_}++'

Muy bueno. Sin embargo alguién respondió con la siguiente línea de awk:

awk '!o[$0]++'

¡¡¡IN-CRE-í-BLE!!!