Thread Match in einer Textdatei (9 answers)
Opened by Markus S. at 2011-05-31 14:17

topeg
 2011-05-31 15:15
#149300 #149300
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/usr/bin/perl
use strict;
use warnings;

# dateiname setzen
my $file='report.xml';

# Datei als UTF-8 kodiert öffnen, oder Fehlermeldung
open (my $fh,'<:encoding(UTF-8)', $file) or die("Error open $file ($!)\n");

# alles einlesen
my @array=<$fh>;

# Zeilenumbrüche entfernen
chomp(@array);

# Datei schließen
close $fh;

# das Array durchgehen
for my $i (0..$#array)
{
  # Arrayeintrag an stelle $i holen und mit "HALLO" vergleichen
  if($array[$i] eq 'HALLO')
  {
    print "match Line $i\n";
  }
}



Wenn es dir nur um den Treffer geht:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/usr/bin/perl
use strict;
use warnings;

# dateiname setzen
my $file='report.xml';

# Datei als UTF-8 kodiert öffnen, oder Fehlermeldung
open (my $fh,'<:encoding(UTF-8)', $file) or die("Error open $file ($!)\n");

# alles einlesen
my @array=<$fh>;

# Zeilenumbrüche entfernen
chomp(@array);

# Datei schließen
close $fh;

# das Array durchgehen
for my $line (@array)
{
  print "match\n" if($line eq 'HALLO');
}


oder wenn es dir nur darum geht Festzustellen, ob ein String in einer Datei ist:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/perl
use strict;
use warnings;

# dateiname setzen
my $file='report.xml';

# Datei als UTF-8 kodiert öffnen, oder Fehlermeldung
open (my $fh,'<:encoding(UTF-8)', $file) or die("Error open $file ($!)\n");

{
  # input line separator
  local $/=undef;

  # mit regulärem Ausdruck "HALLO" finden
  print "match\n" if( <$fh>=~/\nHALLO\n/ );
}

# Datei schließen
close $fh;

Last edited: 2011-05-31 15:16:47 +0200 (CEST)

View full thread Match in einer Textdatei