![]() |
Hej och välkommen från USA till UNIX och Linux Forum! Tack för ditt besök och gå med i vår globala gemenskapen.
|
|
google unix.com
|
|||||||
| Forum | Registrera | Forum Regler | Länkar | Album | FAQ | Medlemslista | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här. |
Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Senaste Inlägg |
| brist på förståelse> irriterande fel | jzacsh | Shell-programmering och Skript | 21 | 4 veckor sedan 04:10 |
| fel i produktionen av perl script | namishtiwari | Shell-programmering och Skript | 2 | 06-15-2009 06:02 |
| Perl Fel med ftptail script | Cooki3s! | UNIX for Dummies Frågor & Svar | 2 | 05-04-2009 12:46 |
| Hjälp förståelse syntaxfel Utgåva | warlock129 | Shell-programmering och Skript | 6 | 04-26-2009 08:02 |
| Perl skriptfel | pietie | Shell-programmering och Skript | 4 | 10-15-2008 10:05 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
||||
|
Jag är inte säker på vad alla dessa "Shift"-raderna är till för, men din loop problem är här:
Kod:
while ($f2){
($Fld0,$Fld1,$Fld2,$Fld3,$Fld4,$Fld5,$Fld6,$Fld7,$Fld8,$Fld9,$Fld10) = split(/[|\n]/,$f2, -1);
print $f3_out ($Fld0, $Fld1, $Fld2, $Fld3, $Fld4, $Fld10);
}
}
Kod:
($Fld0,$Fld1,$Fld2,$Fld3,$Fld4,$Fld5,$Fld6,$Fld7,$Fld8,$Fld9,$Fld10) = split(/[|\n]/,$f2, -1); print $f3_out ($Fld0, $Fld1, $Fld2, $Fld3, $Fld4, $Fld10); } Jag vet inte om det kommer att göra din kod göra något nyttigt, men förhoppningsvis kommer det att springa och du kan ytterligare ändringar som behövs. |
|
|||||
|
Tack för svaret
Jag vill att det ska slinga men inte oändliga på första raden i fil2. Fil2 har 24.000 poster upp i 10 områden som jag har det arbetar Nu men jag använder 2 skript för att göra det en extrahera registrerar Andra träffar dem. Vad jag försöker göra är att kombinera dem Till en THK |
|
||||
|
Om du inte vill att slinga oändligt sedan bort "medan" loop jag visade dig att ta bort.
---------- Post uppdaterad kl 02:25 ---------- Föregående uppdatering var vid 02:15 ---------- Kanske är w2hat du vill göra: Kod:
#!/usr/local/bin/perl
use warnings;
use strict;
die "Usage: $0 <file1> <file2> <file_out>\n" unless $#ARGV==2;
my ($file1, $file2, $file3) = @ARGV;
open my $f1_in, $file1 or die "Could not open $file1\n";
open my $f2_in, $file2 or die "Could not open $file2\n";
open(my $f3_out, '>', $file3) or die "Could not open $file3: $!\n";
while (my $f1 = <$f1_in>) {
my $f2 = <$f2_in>;
$f1 =~ s/^\s+|\s+$//g;
$f2 =~ s/^\s+|\s+$//g;
my($Fld0,$Fld1,$Fld2,$Fld3,$Fld4,$Fld5,$Fld6,$Fld7,$Fld8,$Fld9,$Fld10) = split(/\|/,$f2, -1);
print $f3_out join(',',$Fld0, $Fld1, $Fld2, $Fld3, $Fld4, $Fld10);
}
|