• Publicidad

Eliminar líneas repetidas según el primer campo

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Eliminar líneas repetidas según el primer campo

Notapor ninhidrina » 2013-04-18 13:12 @592

Tengo un archivo de texto con dos columnas numéricas quiero quedar solo con la primera línea donde aparezca el valor de la columna 1.
Ejemplo:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
6023                  -3.10    
6023                  -3.08    
6023                  -3.06    
6023                  -2.75    
6907                  -5.69    
6907                  -5.67    
6805                  -6.08    
6805                  -5.98    
6805                  -5.08    
6805                  -4.86  
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

donde solo me interesa:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
6023                  -3.10
6907                  -5.69
6805                  -6.08
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

¿Necesito un programa para eso o lo puedo hacer con la línea de comandos?
ninhidrina
Perlero nuevo
Perlero nuevo
 
Mensajes: 3
Registrado: 2013-04-18 12:53 @578

Publicidad

Re: Eliminar líneas repetidas según el primer campo

Notapor explorer » 2013-04-18 13:39 @610

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:
Sintáxis: [ Descargar ] [ Ocultar ]
  1. $ 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.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Eliminar líneas repetidas según el primer campo

Notapor ninhidrina » 2013-04-18 13:58 @623

Muchas gracias, explorer, justo lo que necesitaba.
ninhidrina
Perlero nuevo
Perlero nuevo
 
Mensajes: 3
Registrado: 2013-04-18 12:53 @578


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 41 invitados