Schrift
[thread]8621[/thread]

Suche in bestimmten Zeilen nach bestimmtem Wort (Seite 2)

Leser: 1


<< |< 1 2 3 >| >> 29 Einträge, 3 Seiten
renee
 2007-01-09 14:56
#72887 #72887
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Sind die Einträge (AA - EE) irgendwie besonders getrennt? Ist da immer eine Leerzeile dazwischen?

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/usr/bin/perl

use strict;
use warnings;

my $file = '/path/to/file';
open my $fh,"<",$file or die $!;
local $/ = "\nAA";
while(my $entry = <$fh>){
my @lines = split /\n/,$entry;
if($lines[0] =~ /Mercedes/){
print $_,"\n" for @lines[3,4];
}
}
close $fh;
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
kabazza
 2007-01-11 17:22
#72888 #72888
User since
2006-11-23
23 Artikel
BenutzerIn
[default_avatar]
die einträge sind durch "..." getrennt.
ich versuch mein ziel nochmal besser zu beschreiben.:
ich möchte in einem eintrag in bestimmten zeilen ein wort suchen und dann aber andere zeilen mir ausgeben lasse.
z.b. suche nach Mercedes in Zeilen AA, CC und gib BB, DD, EE aus.
renee
 2007-01-11 18:03
#72889 #72889
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/usr/bin/perl

use strict;
use warnings;
use Data::Dumper;

my @result;

my $file = '/path/to/file';
open my $fh,"<",$file or die $!;
local $/ = "\n...\n";
while(my $entry = <$fh>){
my $bool = 0;
my @lines = split /\n/,$entry;
my @aacc = grep{/^(?:AA|CC)/}@lines;
my @temp = grep{/^(?:BB|DD|EE)/}@lines;
if(grep{/Mercedes/}@aacc){
push @result,\@temp;
}
}
close $fh;

print Dumper(\@result);
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
kabazza
 2007-01-11 19:02
#72890 #72890
User since
2006-11-23
23 Artikel
BenutzerIn
[default_avatar]
wow, auf Data::Dumper; wär ich im leben nicht gekommen. vielen dank! hat mir sehr geholfen!
renee
 2007-01-11 20:03
#72891 #72891
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
CPAN:Data::Dumper ist nur für die Ausgabe der Datenstruktur da...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
kabazza
 2007-01-14 16:29
#72892 #72892
User since
2006-11-23
23 Artikel
BenutzerIn
[default_avatar]
wie kann ich es denn schaffen ein suchwort nicht nur in einer bestimmten zeile zu suchen, sondern optional über den ganzen eintrag? ich möchte aber gerne bei dem vorgeschlagenem code von renne bleiben und den ausbauen.\n\n

<!--EDIT|kabazza|1168785024-->
kabazza
 2007-01-14 17:05
#72893 #72893
User since
2006-11-23
23 Artikel
BenutzerIn
[default_avatar]
eine unelegante aber funtionierende sache ist bei
my @aacc = grep{/^(?:AA|CC)/}@lines;
my @temp = grep{/^(?:BB|DD|EE)/}@lines;
einfach AA, CC, BB, leer zu setzen. da kommen aber endlose warnungen.
wie geht es besser? hat jemand eine idee?
renee
 2007-01-14 17:19
#72894 #72894
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Angenommen, in $flag ist mit 0 gespeichert wenn nur in den bestimmten Zeilen gesucht werden soll, mit 1 wenn im gesamten Eintrag gesucht werden soll:
Code: (dl )
1
2
 my @aacc = ($flag == 0) ? grep{/^(?:AA|CC)/}@lines : @lines;
my @temp = grep{/^(?:BB|DD|EE)/}@lines;
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
kabazza
 2007-01-14 17:37
#72895 #72895
User since
2006-11-23
23 Artikel
BenutzerIn
[default_avatar]
und wieder schaffte es der unglaubliche renee ein problem in luft aufzulösen...
kabazza
 2007-01-18 14:38
#72896 #72896
User since
2006-11-23
23 Artikel
BenutzerIn
[default_avatar]
ich hab mich jetzt mal mit Data::Dumper etwas beschäftigt. ich konnte aber nichts finden wie ich die ausgabe nicht zeilenweise, sonder spaltenweise (zum vergleich) verändern kann.
weiß da jemand was drüber oder hat eine idee?
meine ausgabe sieht so aus:
$VAR1 = [
'AA dummytext',
'BB dummytext',
'CC dummytext',
];
$VAR2 = [
.......
<< |< 1 2 3 >| >> 29 Einträge, 3 Seiten



View all threads created 2007-01-04 19:25.