![]() |
Hello and Welcome-tól az Egyesült Államokat, hogy az UNIX és Linux Forums? Köszönjük, hogy meglátogatta és csatlakozik Globális Közösség.
|
|
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 |
| Fájlok és időpontok | mastachef | A UNIX a dummies Kérdések és válaszok | 1 | 12-03-2007 02:12 PM |
| Összevetéshez időpontokat ... | i_priyank | Shell programozás és Scripting | 3 | 09-21-2007 12:50 AM |
| Összevetéshez időpontok | ragha81 | Shell programozás és Scripting | 2 | 11-01-2006 06:17 PM |
| Dátumok összehasonlítása | ragha81 | Shell programozás és Scripting | 17 | 10-25-2006 05:38 PM |
| Miközben a témával a dátumokat. Újabb időpont kérdéses | MizzGail | A UNIX a dummies Kérdések és válaszok | 14 | 10-24-2003 07:54 AM |
![]() |
|
|
LinkBack | Téma eszközök | Keresés a téma | Rate Thread | Megjelenítési módok |
|
|
|
||||
|
Awk kérdés: Sum időpontok
Hi there,
Van egy naplófájl, amely a következő elrendezés: 20080812 0 20 20080812 12 10 20080812 12 10 20080812 12 10 Azt akarom, hogy az összeg a "12" az utolsó 3 sor, és mentse el a "20" az első sorban. A végső kimeneti kell 20080812 36 20 Úgy gondolom, hogy kell nekem még könnyebb az awk? Nagyon köszönöm a tanácsokat. |
|
||||
|
Nem vagyok biztos abban, hogy jutok a kérdés megfelelő, de itt a kód: Én csak azt feltételezik, hogy Ön lesz a az első és a harmadik területen az első sorban.
Kód:
awk 'BEGIN {sum=0; } {if (NR==1){ var1=$1; var3=$3;} sum += $2; } END { print var1" "sum" "var3 }' filename
|
|
||||
|
Sajnáljuk Köszönöm a válaszokat de azt nem, hogy az egész kép úgy, itt van:
200808260640 0 11383 200808210640 0 200808300640 0 200808300640 0 200808300640 0 200808260640 336528522 8844 200808260640 724271039 8080 200808260640 583502861 8077 200808210640 0 200808210640 0 200808210640 0 200808290640 0 200808290640 0 200808290640 0 200808290640 0 200808150640 0 7667 200808160640 0 3285 200808310640 0 200808150640 634799861 4703 200808150640 329658775 4704 200808150640 588901581 4875 200808160640 201718658 1424 Amit én akarok az összeg az összes $ 2 ugyanazon a napon, és mentse a $ 3 az említett időpontig. Pl. mint a kiküldött az első post. 200808150640 0 7667 200808150640 634799861 4703 200808150640 329658775 4704 200808150640 588901581 4875 Várható eredmény: 200808150640 (634799861 +329658775 +588901581) 7667 Azt akarom, hogy ezt a teljes fájlt. Nagyon köszönöm a tanácsokat. |
|
|||||
|
Csak találgatni:
(használd nawk / vagy usr/xpg4/bin/awk Solaris) Kód:
awk 'END \
{ for (dt in third) print dt, second[dt], third[dt] }
{ if (!_[$1]++) third[$1] = $3; second[$1] += $2 }
' filename
![]() Kód:
perl -ane'
$third{$F[0]} = $F[2] unless $x{$F[0]}++;
$second{$F[0]} += $F[1];
print map "$_ $second{$_} $third{$_}\n", sort keys %x
if eof' filename
Last edited by radoulov; 09/02/2008 at 06:22 AM.. |
![]() |
| Könyvjelzõk |
| Téma eszközök | Keresés a téma |
| Megjelenítési módok | Rate this thread |
|
|