![]() |
Ciao e benvenuto da parte degli Stati Uniti al UNIX e Linux Forum! Grazie per la visita ed unirsi alla nostra Comunità Globale.
|
|
google unix.com
|
|||||||
| Forum | Registrati | Regole Forum | Collegamenti | Album | FAQ | Members List | Calendario | Ricerca | Today's Posts | Mark Forums Read |
| 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 |
![]() |
|
|
LinkBack | Thread Tools | Cerca in questo Thread | Rate Thread | Modalità di visualizzazione |
|
|
|
||||
|
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? |
|
||||
|
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
|
|
||||
|
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 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:
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
|
![]() |
| Segnalibri |
| Thread Tools | Cerca in questo Thread |
| Modalità di visualizzazione | Vota questo thread |
|
|