Filtrar lineas de texto repetidas

Por Saiyine  el 2003-08-05 00:00:00 - Secciones:  PERL  - Enlace permanente: 393

Necesitaba un programa que eliminase las lineas repetidas de un texto, y como el uniq del UNIX es practicamente inutil, tuve que currarmelo yo (unique):

#!/usr/bin/perl @lineas = <STDIN>; foreach $linea (@lineas) { $estaba="Pono"; foreach $cadena (@repasadas) { if ($cadena eq $linea) { $estaba="Pozi"; } } if ($estaba eq "Pono") { push @repasadas, $linea; print "$linea"; } }

ACTUALIZACIÓN 23/07/2004 Usando diccionarios, _muchísimo_ más rápido.

#!/usr/bin/perl while (<STDIN>) { if (!(exists $lineas{$_})) { print "$_"; $lineas{$_}="1"; } }

Keith Amling (25/09/2005, 13:22)

uniq is designed for use with sorted text. If you sort the input first it will handle it correctly, for example
$ cat file
c
a
a
b
a
$ cat file | uniq
c
a
b
a
$ cat file | sort | uniq
a
b
c

If you need the lines sorted as they were initially then uniq is useless. While I'm on the subject of uniq, don't forget uniq -c.

Saiyine (25/09/2005, 23:41)

Yeah, that was right the problem, I didn't wanted sort to mess with the order. Thanks for this lot of commentaries!


Tu nombre (Nick):

Tu correo (Email):
  Necesario para tu gravatar!

Tu página (URL):

Escribe aqui tu comentario:

       :noworry: :roll: :huh: :push: ¬¬ :OO 8) 8O :( :) :? :D :P :o :x :| ;) ^^ xD



Vista previa activada.

Vista previa (6/6/6, 6:66)


Patrocinadores

Saiyine recommends the easiest way to earn money with your web: get paid just by having some links! Click this button to check it out.

Text Link Ads

. . .

Descargas

  • ApagaPC
    apagapc241.exe  (2075)
  • LimpiaDocus
    LimpiaDocus001.exe  (1793)
  • RCM
    rcm001.zip  (1660)
  • Popmail
    popmail-0.4-psmn.tar.gz  (1712)
  • Manual de Delphi en PDF
    delphi_pdf.zip  (2210)
  • Evangelio del Perl
    Evangelio_del_perl.pdf  (1823)
  • Excel Simpsons
    Excel Simpsons  (1865)
  • . . .

    Recomiendo

  •  Mozilla Firefox 
    DIR (567)
  •  Mozilla Thunderbird 
    DIR (535)
  • KLite 
    klmcodec375.exe (96)
  •  Emule 
    DIR (506)
  •  Knoppix 
    DIR (426)
  •  Knoppix en español (DVD) 
    DIR (767)
  •  Mldonkey 
    DIR (485)
  •  Nucleo linux 
    DIR (486)
  •  Parche linux 
    DIR (486)

    . . .
  • Proyectos online

  • Saiyine Store
  • Kunowalls!!!
  • Fondos de pantalla
  • Picaday: imagenes sexys o chocantes.
  • Scarlett: fotos de Scarlett Johansson
  • WhatsmyIP: obtener tu IP pública
  • Uma Thurman: galeria de Uma Thurman
  • FunPics: imagenes graciosas
  • . . .

    Blogs

  • Por lo que más querais, no entreis a estos: Tapanez, Yhandros, Onez.

  • Otros en español: Chavalina, Testosterona, Kirai, Wardog y el mundo, Mundo Geek, Microsiervos.

  • Mis lecturas en guiri: Coding Horror, MySQL Performance, Slashdot.

    . . .
  • Utilidades

  •  Coral  (600), cacheando webs
  •  Spam.la  (691), correo de usar y tirar
  •  Mailinator  (681), correo de usar y tirar
  •  Bug me not  (631), absurdos registros di NO
  •  Trashmail  (624), correo de usar y tirar

    . . .
  • Página web ©2001-2008 Saiyine generada en 0.11231s, con 1657116 visitas en total, hoy 917 (de un total de 1073 previstas).

    . . .