linux-l: perl und schnelle Suche

Oliver Bandel oliver at first.in-berlin.de
Fr Jun 15 22:07:57 CEST 2001



On Fri, 15 Jun 2001, Ulrich Wiederhold wrote:

> Hallo,
> mein Problem ist, daß ich nach einem String in einer Datei suchen muß,
> wobei Groß- und Kleinschreibung keine Rolle spielen soll.
> 
> Bsp.:
> dies ist filename 1
> dies iSt_filname 2
> dieS_Ist` filename 3
> 
> 
> suche nach "dies ist" soll alle 3 Einträge zurückgeben, auch die Suche
> nach "ilNaMe" soll erfolgreich sein.


##########################################################
#!/usr/bin/perl -w

use strict;

my $text; # Der zu durchsuchende Text


# verschiedene Suchstrings
# ------------------------
my $string1 = "dies ist filename 1";
my $string2 = "dies iSt_filname 2";
my $string3 = "dieS_Ist` filename 3";



print "\nSuchstrings (nach entfernen von Space und Underscore):\n";
print "------------------------------------------------------\n";
foreach my $str ($string1, $string2, $string3)
{
  $str =~ tr/ _//d;
  print "=> $str\n";
}

print "\nErgebnis:\n";
print "---------\n";
while(<>)
{
  $text = $_;        # backup
  $text =~ tr/ _//d; # entfernen von space und underscore

  print $_ if $text =~ /$string1/i;
  print $_ if $text =~ /$string2/i;
  print $_ if $text =~ /$string3/i;
}
__END__
##########################################################


Das ist das Grundprinzip.


Alles weiter selnst anpassen.

Ciao,
   Oliver





Mehr Informationen über die Mailingliste linux-l