The UNIX and Linux Forums  
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.

Go Back   A UNIX és Linux Forums > Top Fórumok > Shell programozás és Scripting
.
google unix.com



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

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Téma eszközök Keresés a téma Rate Thread Megjelenítési módok
  #1 (permalink)  
Old 09-01-2008
BufferExploder BufferExploder is offline
Regisztrált felhasználó
  
 

Join Date: Sep 2008
Hozzászólások: 9
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.
  #2 (permalink)  
Old 09-01-2008
dennis.jacob dennis.jacob is offline Forum Advisor  
dj -------
  
 

Join Date: Feb 2007
Helyszín: Szingapúr / Bangalore / Cochin
Posts: 589
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
  #3 (permalink)  
Old 09-02-2008
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell programozó, szerző
  
 

Join Date: Mar 2007
Helyszín: Toronto, Kanada
Hozzászólások: 2.361

Kód:
awk '
 NR==1 { var1=$1; var3=$3; next }
 { var2 += $2 }
END { print var1" "var2" "var3 }' filename
Gyanítom, hogy mit akarsz valójában sokkal összetettebb, mint ez, ha igen, akkor valószínűleg le a bemeneti fájl több teljesen.
  #4 (permalink)  
Old 09-02-2008
BufferExploder BufferExploder is offline
Regisztrált felhasználó
  
 

Join Date: Sep 2008
Hozzászólások: 9
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.
  #5 (permalink)  
Old 09-02-2008
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
Addict
  
 

Join Date: Jan 2007
Helyszín: Варна, България / Milano, Olaszország
Hozzászólások: 2859
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
Ha szükség van a kimeneti sorrendje, csővágó, hogy a fajta (vagy használjon asorti ha van GNU Awk). Vagy csak használja Perl

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..
  #6 (permalink)  
Old 09-02-2008
BufferExploder BufferExploder is offline
Regisztrált felhasználó
  
 

Join Date: Sep 2008
Hozzászólások: 9
Nagyon köszönöm a barátom úgy működik, mint egy igézet.
  #7 (permalink)  
Old 09-02-2008
dennis.jacob dennis.jacob is offline Forum Advisor  
dj -------
  
 

Join Date: Feb 2007
Helyszín: Szingapúr / Bangalore / Cochin
Posts: 589
Próbáld ki ezt:

Kód:
for each in $(cut -c1-8 filename | sort -u)
        do
        awk '/^'$each'/{ if ($2==0){ var1=$1;var3=$3;} sum+=$2; }END { print var1" "sum" "var3;}' filename
        done
Closed Thread

Könyvjelzõk

Téma eszközök Keresés a téma
Keresés a téma:

Részletes keresés
Megjelenítési módok Rate this thread
Rate this thread:

Posting szabályzat
Ön nem post new threads
Ön nem post válaszok
Ön nem post Csatolmányok
Ön nem szerkeszteni az üzeneteidet

BB kód van Be
Smilies vannak Be
[IMG] kód Be
HTML kód Ki
Trackbacks vannak Be
Pingbacks vannak Be
Refbacks vannak Be




Minden idő GMT -4. Az idő most 11:41 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Nyelvre lefordítva Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
A UNIX és Linux Fórum Tartalom Copyright © 1993-2009. Minden jog Reserved.Ad menedzsment RedTyger

Content Relevant URLs by vBSEO 3.2.0