![]() |
|
|
google unix.com
|
|||||||
| Fórumok | Regisztráció | Fórum Szabályok | Linkek | Albumok | GYIK | Tagok listája | Naptár | Keres | Mai hozzászólások | Megjelöl Fórumok Olvas |
| 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 |
| Ha hívás / execute a shell script a shell script | konark | A UNIX a dummies Kérdések és válaszok | 1 | 10-26-2007 06:16 PM |
| hogyan kell végrehajtani shell parancsok awk script? | RishiPahuja | Shell programozás és Scripting | 1 | 09-02-2005 10:37 AM |
| Execute Héjprogram | sam71 | A UNIX a dummies Kérdések és válaszok | 1 | 04-29-2005 02:43 PM |
| Lehet-e execute shell script a PHP? | Micz | Shell programozás és Scripting | 1 | 05-27-2004 12:52 PM |
| Hogyan kell végrehajtani Héjprogram? | siva | Shell programozás és Scripting | 3 | 05-14-2002 12:07 PM |
![]() |
|
|
LinkBack | Téma eszközök | Keresés a téma | Rate Thread | Megjelenítési módok |
|
|
|
||||
|
Shell script van több, mint 3 óra végrehajtására
Szia
Csinálok folyamat átalakítására minden érték a legfontosabb oszlopa ki egy sorba, pl Key col1 col2 1 1 1 1 2 1 1 1 3 1 3 1 2 1 1 2 1 2 Hogy mit csinálok a szkriptet alakítják át ezt az adatokat 1 (fő) | 1:2:1:3 (Minden col1 értékek), 1:1:3:1 (összes col2 értékek) 2 (key) | 1:1,1:2 Ennek elérése érdekében én használ, miközben két hurok és 4 Ha mást hurkok Most az én termelés az oszlopok száma is 4, és a rekordok száma a bemeneti fájl 0,2 millió (2 lac), és ezt a szkriptet vesz több, mint 3 óra futtatásához. Van ötlete, hogyan minimalizálja az átfutási idő? |
|
||||
|
Nincs hiba ellenőrzés! Nem teljes! Használó hash, ezt kell szuper gyors! ![]() Kód:
#! /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
Szia, Ez kell az OK gombra. bemenet: Kód:
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: Kód:
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 kód: Kód:
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
|
![]() |
| Könyvjelzõk |
| Téma eszközök | Keresés a téma |
| Megjelenítési módok | Rate this thread |
|
|