The UNIX and Linux Forums  

Go Back   A UNIX és Linux Forums > Top Fórumok > Shell programozás és Scripting
.
google unix.com



Shell programozás és Scripting Post kérdések KSH, CSH, SH, Bash, Perl, PHP, SED, AWK ÉS EGYÉB shell szkriptek és shell script nyelvek itt.

Több, UNIX és Linux fórum témák Ön által talált Hasznos
Szál Thread Starter Fórum Válaszok Utolsó hozzászólás
nem értik> bosszantó hiba jzacsh Shell programozás és Scripting 21 10-28-2009 04:10 PM
hiba a kimeneti perl script namishtiwari Shell programozás és Scripting 2 06-15-2009 06:02 AM
Hiba a ftptail Perl script Cooki3s! A UNIX a dummies Kérdések és válaszok 2 05-04-2009 12:46 PM
Segítség megértés syntax error kiadás warlock129 Shell programozás és Scripting 6 04-26-2009 08:02 PM
Perl script hiba pietie Shell programozás és Scripting 4 10-15-2008 10:05 AM

Reply
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Téma eszközök Keresés a téma Rate Thread Megjelenítési módok
  #1 (permalink)  
Old 07-03-2009
Ex-Capsa's Avatar
Ex-Capsa Ex-Capsa is offline VIP Member  
VIP tag
  
 

Join Date: Mar 2009
Helyszín: Kanada / Quebec / Montreal
Hozzászólások: 29
Segítségre van szüksége a megértés perl script hiba

Azt kérte ezen az oldalon korábban ezen a héten és van egy jó válasz egy perl
Script így tette ezt a forgatókönyvet, mi értendő a válaszokat
De most van egy hiba, és én vagyok csonkja. Nem sikerült feldolgozni megfelelően a
Output marad az első sorban my $ f2 és másolatok egy végtelen ciklusba
Biztos vagyok benne, vannak jobb módszerek is, mint ez. De ez az, amit szeretnék megoldani
Dan

Ez a szkript


Kód:
 
#!/usr/local/bin/perl -w
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;
 
#$\ = "\n";
my $FS = '|';
$, = ',';
 
my $Fld0 = shift;
my $Fld1 = shift;
my $Fld2 = shift;
my $Fld3 = shift;
my $Fld4 = shift;
my $Fld5 = shift;
my $Fld6 = shift;
my $Fld7 = shift;
my $Fld8 = shift;
my $Fld9 = shift;
my $Fld10 = shift;
 
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);
}
}


Last edited by vidyadhar85; 07-03-2009 at 06:46 PM.. Ok: Code tag-ki
  #2 (permalink)  
Old 07-04-2009
KevinADC KevinADC is offline Forum Advisor  
Regisztrált felhasználó
  
 

Join Date: Jan 2008
Hozzászólások: 731
Nem tudom, mik azok a "műszak" sorok vannak ott, de a loop probléma van most:

Kód:
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);
}
}

El kell távolítani a ", miközben" loop:


Kód:
($Fld0,$Fld1,$Fld2,$Fld3,$Fld4,$Fld5,$Fld6,$Fld7,$Fld8,$Fld9,$Fld10) = split(/[|\n]/,$f2, -1);
print $f3_out ($Fld0, $Fld1, $Fld2, $Fld3, $Fld4, $Fld10);

}


Nem tudom, ha ez teszi a kódot, nem valami hasznos, de remélhetőleg fog futni, és tudod tovább módosítani, ha szükséges.
  #3 (permalink)  
Old 07-05-2009
Ex-Capsa's Avatar
Ex-Capsa Ex-Capsa is offline VIP Member  
VIP tag
  
 

Join Date: Mar 2009
Helyszín: Kanada / Quebec / Montreal
Hozzászólások: 29
Köszönöm a válaszát

Akarom azt a hurok, de nem a végtelenségig az első sorban a FÁJL2.
FÁJL2 már 24.000 rekordok osztva 10 mezők megvan ez bevált
Most azonban I'm using 2 scriptek csinálni egy kivonat a nyilvántartást a
Egyéb települések őket. Mit akarok csinálni az ezeket egyesítő
Valamelyikébe

THK
  #4 (permalink)  
Old 07-05-2009
KevinADC KevinADC is offline Forum Advisor  
Regisztrált felhasználó
  
 

Join Date: Jan 2008
Hozzászólások: 731
Ha nem akarjuk, hogy végtelen ciklus, majd távolítsa el a "míg a" hurok megmutattam eltávolítani.

---------- Post updated at 02:25 ---------- Előző update volt 02:15 ----------

Lehet, hogy ez w2hat szeretne tenni:


Kód:
#!/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);
}

Reply

Könyvjelzõk

Téma eszközök Keresés a téma
Keresés a téma:

Részletes keresés
Megjelenítési módok Rate this thread
Rate this thread:

Posting szabályzat
Ön nem post new threads
Ön nem post válaszok
Ön nem post Csatolmányok
Ön nem szerkeszteni az üzeneteidet

BB kód van Be
Smilies vannak Be
[IMG] kód Be
HTML kód Ki
Trackbacks vannak Be
Pingbacks vannak Be
Refbacks vannak Be




Minden idő GMT -4. Az idő most 10:51 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Nyelvre lefordítva Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
A UNIX és Linux Fórum Tartalom Copyright © 1993-2009. Minden jog Reserved.Ad menedzsment RedTyger

Content Relevant URLs by vBSEO 3.2.0