The UNIX and Linux Forums  


Go Back   UNIX og Linux Forums > Top Forums > Shell Programmering og Scripting
.
google unix.com



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

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Søg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 08-31-2008
Raynon Raynon is offline
Registreret Bruger
  
 

Join Date: Sep 2006
Beliggenhed: Sg
Stillinger: 350
Å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..
  #2 (permalink)  
Old 08-31-2008
epoke era is offline Forum Advisor  
Herder af Useless Cats (On Sabbatical)
  
 

Join Date: Mar 2008
Location: / der / er / kun / bin / sh
Stillinger: 3652
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.
  #3 (permalink)  
Old 09-01-2008
Raynon Raynon is offline
Registreret Bruger
  
 

Join Date: Sep 2006
Beliggenhed: Sg
Stillinger: 350
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 ";

  #4 (permalink)  
Old 09-01-2008
Raynon Raynon is offline
Registreret Bruger
  
 

Join Date: Sep 2006
Beliggenhed: Sg
Stillinger: 350
Hej, jeg tror, jeg ved, hvor er den fejl.
Jeg savner de duoble citerer i åben erklæring.

open (FH, "<$ Summary_x") Or die $!;
  #5 (permalink)  
Old 09-01-2008
Raynon Raynon is offline
Registreret Bruger
  
 

Join Date: Sep 2006
Beliggenhed: Sg
Stillinger: 350
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..
  #6 (permalink)  
Old 09-02-2008
epoke era is offline Forum Advisor  
Herder af Useless Cats (On Sabbatical)
  
 

Join Date: Mar 2008
Location: / der / er / kun / bin / sh
Stillinger: 3652
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
  #7 (permalink)  
Old 09-02-2008
Raynon Raynon is offline
Registreret Bruger
  
 

Join Date: Sep 2006
Beliggenhed: Sg
Stillinger: 350
Hi Era

Thks et parti for de råd!
Nu ved jeg, hvor jeg er forkert.
Closed Thread

Bogmærker

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 03:22 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0