Bienvenido a los foros de Perl en Español, ninhidrina.
Perl es ideal para el procesamiento de registros. Tu problema se puede resolver, efectivamente, desde la línea de comandos:
- $ perl -n -a -e 'print if not $visto{$F[0]}++' archivo.txt > resultado.txt
Se procesa el archivo.txt, línea a línea, sin pintarlas (-n);
por cada línea, la partimos (-a) en campos separados por los espacios en blanco y los guardamos en el array @F;
por cada línea, ejecutamos un mini-programa (-e);
el mini-programa
imprime la línea entera en el caso de que el
primer campo no haya sido visto antes.
Esto se consigue usando un hash llamado %visto, que lleva la cuenta (++) de las veces que aparece el primer campo.