Suchen in txt Datei
Marcus Vieß
- perl
use strict;
$searchdata='/is/htdocs/www.bla.de/searchdata.txt';
print 'Welche Datei wollen Sie durchsuchen : ';
chomp (my $searchdata=<>);
open (FH, "<$searchdata");
while(my $search = <FH>){ #Zeilenweise einlesen
if ($search =~ m/Blade/g) { #Suchen nach dem Wort: und
print $. , '.Zeile: 'Blade' gefunden\n';
}
}
close(FH);
Ich möchte das Wort Blade in der TXT finden und die ganze Zeile in der es steht ausgeben. Aber irgendwie klappert das nicht ...
Also Quasi nach *blade* suchen, Groß- Kleinschreibung soll egal sein, um noch mehr treffer zu bekommen ...
Hallo Marcus,
while(my $search = <FH>)
{
chomp($search);
if($search =~ /blade/i)
{
# Gefunden!
}
}
das chomp nimmt den \n oder \r\n raus.
Gruß
Eidgenosse
use Mosche;
use strict;
$searchdata='/is/htdocs/www.bla.de/searchdata.txt';
my $searchdata = ...
print 'Welche Datei wollen Sie durchsuchen : ';
chomp (my $searchdata=<>);
print $searchdata;
Ist $searchdata leer? Fehlermeldung, weil du eine lexikal zu deklarierende Variable (s.o.) nochmals deklarierst?
open (FH, "<$searchdata");
while(my $search = <FH>){ #Zeilenweise einlesen
if ($search =~ m/Blade/g) { #Suchen nach dem Wort: und
$search =~ m/blade/i
Ansonsten bitte den echten Quelltext + Fehlermeldung.
use Tschoe qw(Matti);
wenn du die ganze datei durchsuchen willst würde ich zuerst das machen:
{
local $/ = undef; # der zeilen trenner wird in diesem block auf undef gesetzt
$search = <FH>;
if ($search =~ /blade/i ) { print "found }; # i matcht ignore case
}
Die datei sollte dann natürlich nicht endlos gross sein. da er sie sich jetzt in einem rutsch reinsaugt.
wenn du keinen block benutzen willst musst du $/ vorher sichern
my $safe = $/;
$/ = undef;
... blub...
$/ = $save;