The UNIX and Linux Forums  

Go Back   De Unix-en Linux Forum > Top Forums > Programmeren en Shell Scripting
.
google unix.com



Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier.

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
Om te bellen / een shell script van een shell script konark UNIX voor Dummies Questions & Answers 1 10-26-2007 06:16 PM
hoe uit te voeren opdrachten in awk shell script? RishiPahuja Programmeren en Shell Scripting 1 09-02-2005 10:37
Execute shell script sam71 UNIX voor Dummies Questions & Answers 1 04-29-2005 02:43 PM
Is het mogelijk uit te voeren shell script met PHP? Micz Programmeren en Shell Scripting 1 05-27-2004 12:52
Hoe te voeren shell script? Siva Programmeren en Shell Scripting 3 05-14-2002 12:07

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 Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 11-16-2007
nvuradi nvuradi is offline
Geregistreerde gebruiker
  
 

Join Datum: maart 2007
Posts: 23
Shell script is het nemen van meer dan 3 uur uit te voeren

Hoi



Ik ben bezig met een proces van het omzetten van alle waarden van de belangrijkste kolom in een rij, voor bijv.



Key col1 col2

1 1 1

1 2 1

1 1 3

1 3 1

2 1 1

2 1 2



Wat ik doe in het script is zetten deze gegevens in



1 (sleutel) | 1:2:1:3 (Alle Kol1 waarden), 1:1:3:1 (alle col2 waarden),

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

Om dit te bereiken gebruik ik twee terwijl loops en 4 Indien anders loops

Nu in mijn productie van het aantal kolommen zijn 4 en het aantal records in de input-file zijn 0,2 miljoen (2 LAC) en dit script is met meer dan 3 uur te lopen.

Enig idee over hoe de uitvoeringstermijn te minimaliseren?
  #2 (permalink)  
Old 11-16-2007
matrixmadhan matrixmadhan is offline Forum Advisor  
Technorati Master
  
 

Join Date: Mar 2005
Locatie: leaf node in B + boom
Berichten: 2.960
Geen fout controle! Niet compleet!

Met behulp van hash, dient dit te worden super-fast!


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  
Geregistreerde gebruiker
  
 

Join Date: Jun 2007
Locatie: Beijing China
Berichten: 1.097
awk

Hoi,

Dit moet worden ok.

ingang:

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

Code:

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

Bladwijzers

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 02:25.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0