The UNIX and Linux Forums  
Hej og Velkommen fra USA til UNIX og Linux Forums! Tak for dit besøg og deltager i vores globale samfund.

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
At ringe / fuldbyrde en shell script fra en shell script konark UNIX for dummyer Spørgsmål & svar 1 10-26-2007 05:16 PM
hvordan man kan udføre shell kommandoer i awk script? RishiPahuja Shell Programmering og Scripting 1 09-02-2005 09:37 AM
Execute Shell Script sam71 UNIX for dummyer Spørgsmål & svar 1 04-29-2005 01:43 PM
Er det muligt at udføre shell script med PHP? Micz Shell Programmering og Scripting 1 05-27-2004 11:52 AM
Sådan udføre shell Script? siva Shell Programmering og Scripting 3 05-14-2002 11:07 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 11-16-2007
nvuradi nvuradi is offline
Registreret Bruger
  
 

Join Date: Mar 2007
Stillinger: 23
Shell script er ved at tage mere end 3 timer at udføre

Hej



Jeg gør en proces med at konvertere alle de værdier vigtige søjle i en række, til fx



Key col1 col2

1 1 1

1 2 1

1 1 3

1 3 1

2 1 1

2 1 2



Hvad jeg gør i Script er konvertere disse data til



1 (key) | 1:2:1:3 (Alle col1 værdier), 1:1:3:1 (alle col2 værdier)

2 (key) | 1:1,1:2

For at opnå dette er jeg bruge to while-løkker og 4 Hvis ellers sløjfer

Nu i min produktion antallet af kolonner er 4 og det antal records i input-filen er på 0,2 mio (2 LAC), og dette script tager mere end 3 timer at køre.

Nogen idé om hvordan man kan minimere den tid?
  #2 (permalink)  
Old 11-16-2007
matrixmadhan matrixmadhan is offline Forum Advisor  
Technorati Master
  
 

Join Date: Mar 2005
Beliggenhed: blad node i B +-træ
Indlæg: 2.952
Ingen fejlkontrol! Ikke komplet!

Brug af hash, skal denne være super-hurtigt!

Code:
#! /opt/third-party/bin/perl

open(FILE, "<", "r");

while(<FILE>) {
  next if(/^$/);
  chomp;
  my @arr = split(/ /);
  my @val = split(/,/, $fileHash{$arr[0]});
  $val[0] .= (":" . $arr[1]);
  $val[1] .= (":" . $arr[2]);
  $val[0] .= ("," . $val[1]);
  $val[0] =~ s/,:/,/;
  $val[0] =~ s/^://;
  $fileHash{$arr[0]} = $val[0];
}

close(FILE);

foreach my $k ( keys %fileHash ) {
  print "$k $fileHash{$k}\n";
}

exit 0
  #3 (permalink)  
Old 11-18-2007
summer_cherry summer_cherry is offline Forum Advisor  
Registreret Bruger
  
 

Join Date: Jun 2007
Location: Beijing Kina
Posts: 1.082
awk

Hej,

Dette bør man være ok.

input:
Code:
1 1 1

1 2 1

1 1 3

1 3 1

2 1 1

2 1 2

3 1 1

4 2 1

4 1 3

1 3 1

2 1 1

2 1 2
optput:
Code:
2|1:1:1:1|1:1:1:1
3|1|1
4|2:1|2:1
1|1:2:1:3:3|1:2:1:3:3
kode:
Code:
awk '
{
if (NF>1)
{
	col[$1]=$1
	if (col1[$1]=="")
		col1[$1]=$2
	else
		col1[$1]=sprintf("%s:%s",col1[$1],$2)
	if (col2[$1]=="")
		col2[$1]=$2
	else
		col2[$1]=sprintf("%s:%s",col2[$1],$2)
}
}
END{

for (i in col)
	print i"|"col1[i]"|"col2[i]
}' filename
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 11:10 AM.


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