![]() |
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Regler | Links | Albums | FAQ | Members List | Kalender | Søgning | Dagens Stillinger | Mark Forums Read |
| Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her. |
Mere UNIX og Linux Forum Emner du måske kan finde Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Last Post |
| Perl: Åbning af en filehandle men ikke at få noget tilbage fra det | Smilende Dragon | Shell Programmering og Scripting | 8 | 08-16-2008 03:40 AM |
| ls-kommando til at udskrive FIFO indholdsfortegnelse (eller perl) | jerardfjay | Shell Programmering og Scripting | 1 | 04-06-2006 03:01 PM |
| Åbning af filer | saarshad001 | UNIX for dummyer Spørgsmål & svar | 3 | 11-28-2003 12:42 PM |
| Åbning af filer | AJA | UNIX for dummyer Spørgsmål & svar | 4 | 11-10-2003 11:25 AM |
| Åbning Perl | perleo | Shell Programmering og Scripting | 2 | 08-26-2002 10:41 AM |
![]() |
|
|
LinkBack | Thread Tools | Søg denne tråd | Rate Thread | Display Modes |
|
|
|
||||
|
Åbning af filer og kontrollere indholdet i Perl
Hi All, Jeg har brug for ekspert hjælp i forbindelse med udførelsen af følgende i Perl. Jeg har en kode nedenfor men det ikke, t synes at arbejde. Kan nogen ekspert give mig nogle råd? Nedenfor er kravene 1) Åbn mange filer tildelt en array @ filer. Bemærk, at filerne er altid navngives med udtrykket "slags". Eksempler på disse filnavne er "false1_sorts", "false_sorts", "true1_sorts", "true_sorts" osv. 2) Søg efter indhold "32N6524" i åbnet filen. Hvis indholdet findes, tilføje filen til en anden række, der er @ arr_x. Her er de filer, at dette indhold eksisterer er true1_sorts "," true_sorts " Code:
#!/usr/bin/perl
@FILES = ( *sorts );
print "@FILES ";
print "\n";
foreach $summary_x ( @FILES ) {
open(FH, '< $summary_x') or die $!;
while( <FH> ) {
chomp;
if ( /32N6524/ ) {
push (@arr_x, $summary_x)
};
close FH;
};
};
print "@arr_x ";
Forventet Output: false1_sorts false_sorts true1_sorts true_sorts true1_sorts true_sorts Sidst redigeret af Raynon; 08-31-2008 på 07:39 AM.. |
|
||||
|
Til Glob det wildcard, brug <* slags> i stedet for * former som gør noget helt andet, end du ønsker (du skulle have set, at det fik trykt som * vigtigste:: former som er en globbed variabel navn, ikke en globbed filnavnet.
|
|
||||
|
Hi Era Jeg har tilføjet den <* slags> men stadig denne (print "@ arr_x" erklæring ikke, t get printes ud. Kan du hjælpe? Code:
#!/usr/bin/perl
@FILES = ( <*sorts> );
print "@FILES ";
print "\n";
foreach $summary_x ( @FILES ) {
open(FH, '< $summary_x') or die $!;
while( <FH> ) {
chomp;
if ( /32N6524/ ) {
push (@arr_x, $summary_x)
};
close FH;
};
};
print "@arr_x ";
|
|
||||
|
Hi Era Hvad ville være den syntaks, hvis jeg har brug for at matche et udtryk bestående af flere ord, for eksempel udtrykket "Min personlige FIILE". Jeg forsøgte at bruge nedenstående kode, men det gjorde t arbejde. Kan du hjælpe? Code:
if ( /MY PERSONAL FILE/ ) {
push (@arr_x, $summary_x)
};
Indhold til filen "true_sorts" nedenfor. Udseende, hvis sigt ønsker jeg at matche er ikke på den første linje i indholdet, så er der vundet t være nogen kamp. Code:
32N6524 MY PERSONAL FILE Sidst redigeret af Raynon; 09-01-2008 på 10:56 PM.. |
|
||||
|
Du har det afsluttende parentes i det forkerte sted, du lukker filen efter at have læst en linje fra det. Det bidrager til at se logikken, hvis du konsekvent led en plan dybere efter en indledende parentes, og et fald fordybning på det afsluttende parentes. Code:
#!/usr/bin/perl
@FILES = ( <*sorts> );
print "@FILES ";
print "\n";
foreach $summary_x ( @FILES ) {
open(FH, "< $summary_x") or die $!;
while( <FH> ) {
chomp;
if ( /32N6524/ ) {
push (@arr_x, $summary_x);
last;
}
}
close FH;
};
print "@arr_x ";
Jeg har tilføjet den sidste som en mindre optimeringsforslag, men ellers er dette blot har tandbøjle flyttet til det rigtige sted, og den fælles prisstillelser ændret til dobbelt anførselstegn, og korrigeret indrykning. Den chomp synes ikke at være nødvendige, men måske du vil udvide scriptet til det punkt, hvor du ønsker linjer, der skal chomped. Kongruensreglerne om ting med rum, er det ikke et problem. Sidst redigeret af æra; 09-02-2008 på 03:13 AM.. Årsag: Bemærkning om Useless Brug af Chomp |
![]() |
| Bogmærker |
| Thread Tools | Søg denne tråd |
| Display Modes | Bedøm denne tråd |
|
|