![]() |
Hei og Velkommen fra USA til UNIX og Linux Forums! Takk for besøket og Delta i vårt globale samfunn.
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Rules | Lenker | Album | FAQ | Medlemsliste | Kalender | Søke | Dagens innlegg | Marker forumene som lest |
| Shell programmering og Skripting Post spørsmål om ksh, csh, SH, Bash, Perl, PHP, SED, awk og ANDRE shell scripts og Shell skriptespråk her. |
Mer UNIX og Linux Forum Emner Du kan finne nyttig
|
||||
| Tråd | Tråd startet | Forum | Svar | Siste innlegg |
| Perl: Åpning av et filehandle men ikke får noe tilbake fra det | Smiling Dragon | Shell programmering og Skripting | 8 | 08-16-2008 03:40 |
| ls kommando for å skrive FIFO av innhold (eller perl) | jerardfjay | Shell programmering og Skripting | 1 | 04-06-2006 03:01 |
| Åpne filer | saarshad001 | UNIX for Dummies Spørsmål og svar | 3 | 11-28-2003 12:42 |
| Åpne filer | AJA | UNIX for Dummies Spørsmål og svar | 4 | 11-10-2003 11:25 |
| Åpning Perl | perleo | Shell programmering og Skripting | 2 | 08-26-2002 10:41 |
![]() |
|
|
LinkBack | Thread Tools | Søk i denne tråden | Rate Thread | Visningsmoduser |
|
|
|
||||
|
Åpne filer og sjekke innholdet i Perl
Hei Alle,
Jeg trenger noen ekspert hjelp til å utføre følgende i Perl. Jeg har en kode nedenfor, men det spiller, ikke synes å fungere. Kan noen ekspert gi meg noen råd? Nedenfor er kravene 1) Åpne flere filer tildelt en matrise @ filer. Merk at filene er alltid navngitt med termen "fikser". Eksempler på disse filnavnene er "false1_sorts", "false_sorts", "true1_sorts", "true_sorts" osv. 2) Søk etter innhold "32N6524" i åpnet filen. Hvis innholdet eksisterer, legger filen til en annen tabell som @ arr_x. Her er filer som dette innholdet 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 ";
false1_sorts false_sorts true1_sorts true_sorts true1_sorts true_sorts Sist endret av Raynon; 08-31-2008 på 07:39.. |
|
||||
|
Til glob den jokertegn, bruk <* sorterer> istedenfor * sorterer som gjør noe helt annet enn du ønsker (du bør ha sett at det ble skrevet ut som * main:: sorterer som er en globbed variabelnavnet, ikke en globbed filnavnet.
|
|
||||
|
Hi Era,
Jeg har lagt på <* sorterer> men likevel dette (print "@ arr_x" setningen betyr; ikke skrives ut. Kan du hjelpe meg? 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,
Hva ville være syntaksen hvis jeg trenger å matche et begrep som består av flere ord for eksempel ordet "min personlig FIILE". Jeg prøvde å bruke under koden men det visste; ikke. Kan du hjelpe meg? Code:
if ( /MY PERSONAL FILE/ ) {
push (@arr_x, $summary_x)
};
Ser ut som om begrepet jeg vil kampen ikke på første linje i innholdet, og der vant; ikke være noen match. Code:
32N6524 MY PERSONAL FILE Sist endret av Raynon; 09-01-2008 på 10:56.. |
|
||||
|
Du har avslutningskoden spenne på feil sted, er du lukker filen etter å ha lest en linje fra det.
Det hjelper å se logikken hvis du konsekvent indent et nivå dypere etter en innledende stramme, og redusere innrykk på den avsluttende spenne. 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 ";
Den, det chomp synes ikke å være nødvendig, men kanskje du vil utvide skriptet til et punkt der du vil linjene være chomped. Samsvarende på ting med mellomrom på det er ikke et problem. Sist endret av æra; 09-02-2008 på 03:13.. Grunn: Bemerkning på Useless Bruk av Chomp |
![]() |
| Hugseliste |
| Thread Tools | Søk i denne tråden |
| Visningsmoduser | Ranger denne tråden |
|
|