The UNIX and Linux Forums  
Ciao e benvenuto da parte degli Stati Uniti al UNIX e Linux Forum! Grazie per la visita ed unirsi alla nostra Comunità Globale.

Go Back   UNIX e Linux Forum > Inizio Forum > Shell scripting e di programmazione
.
google unix.com



Shell scripting e di programmazione Pubblica domande su KSH, CSH, SH, Bash, Perl, PHP, sed, awk e da altri script di shell e linguaggi di scripting shell qui.

Più di UNIX e Linux Forum Argomenti potreste trovare utili
Filo Thread Starter Forum Risposte Ultimo Post
Per chiamare / eseguire uno script di shell da uno script di shell konark UNIX for Dummies Domande & Risposte 1 10-26-2007 05:16 PM
come per eseguire comandi di shell script in awk? RishiPahuja Shell scripting e di programmazione 1 09-02-2005 09:37 AM
Eseguire la Shell Script sam71 UNIX for Dummies Domande & Risposte 1 04-29-2005 01:43 PM
E 'possibile eseguire script di shell con PHP? Micz Shell scripting e di programmazione 1 05-27-2004 11:52 AM
Come per l'esecuzione di script della shell? siva Shell scripting e di programmazione 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 Cerca in questo Thread Rate Thread Modalità di visualizzazione
  #1 (permalink)  
Old 11-16-2007
nvuradi nvuradi is offline
Utente Registrato
  
 

Iscriviti Data: marzo 2007
Interventi: 23
Script di shell si sta più di 3 ore per l'esecuzione

Salve



Sto facendo un processo di conversione di tutti i valori della colonna chiave in una riga, ad esempio per



Chiave col1 col2

1 1 1

1 2 1

1 1 3

1 3 1

2 1 1

2 1 2



Che cosa sto facendo in questo script è convertire i dati in



1 (chiave) | 1:2:1:3 (Tutti i valori Col1), 1:1:3:1 (tutti i valori col2)

2 (chiave) | 1:1,1:2

Per raggiungere questo obiettivo sono i due mentre utilizzando i loop e 4 Se altro loop

Ora nella mia produzione, il numero di colonne sono 4 ed il numero record del file di input sono 0,2 milioni (2 lac), e questo script è che più di 3 ore per l'esecuzione.

Qualche idea su come ridurre al minimo i tempi di esecuzione?
  #2 (permalink)  
Old 11-16-2007
matrixmadhan matrixmadhan is offline Forum Advisor  
Technorati Master
  
 

Iscriviti Data: marzo 2005
Location: nodo foglia in B + tree
Messaggi: 2.952
Nessun controllo di errore! Non completo!

Utilizzo di hash, questo dovrebbe essere super-veloce!

Codice:
#! /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  
Utente Registrato
  
 

Iscriviti Data: giugno 2007
Ubicazione: Pechino Cina
Messaggi: 1.082
awk

Salve,

Questo dovrebbe essere ok.

ingresso:
Codice:
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:
Codice:
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
codice:
Codice:
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

Segnalibri

Thread Tools Cerca in questo Thread
Cerca in questo Thread:

Ricerca Avanzata
Modalità di visualizzazione Vota questo thread
Vota questo thread:

Distacco regolamento
Tu non può post nuovo thread
Tu non può inviare una risposta
Tu non può postare allegati
Tu non può modificare i tuoi post

BB codice è Su
Smilies sono Su
[IMG] codice Su
Codice HTML è Chiuso
Trackbacks sono Su
Pingbacks sono Su
Refbacks sono Su




Tutti gli orari sono GMT -4. La data di oggi è 06:47 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traduzioni Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX e Linux Forum Content Copyright © 1993-2009. Tutti i diritti Reserved.Ad di gestione da RedTyger

Contenuti pertinenti URL da vBSEO 3.2.0