The UNIX and Linux Forums  


Go Back   UNIX och Linux Forum > Upp Forum > Shell-programmering och Skript
.
google unix.com



Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här.

Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
Tråd Thread Starter Forum Svar Senaste Inlägg
Awk (NAWK) och filtrering värden Nicol UNIX for Dummies Frågor & Svar 11 04-23-2008 05:40
awk / nawk återvänder decimalsystem värderingar? moutaye Shell-programmering och Skript 1 03-25-2008 03:04
awk / nawk återvänder decimalsystem värderingar? moutaye Sun Solaris 1 03-25-2008 03:02
är det möjligt att passera yttre variabelvärden till nawk? swamymns Shell-programmering och Skript 1 02-02-2006 06:13
nawk och variabler plimpix Shell-programmering och Skript 8 07-11-2005 12:56

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 Sök i denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 05-12-2008
saniya saniya is offline
Registered User
  
 

Join Date: maj 2008
Inlägg: 4
Thumbs up hur man kan få värden för awk / nawk variabler utanför awk / nawk block?

Jag är ny skalskript och har ett problem please help me

i manuset har jag en nawk block som har en variabel räkna

nawk (
.
.
.
count \u003d count 1
print count

)

Nu vill jag få tillgång till värdet av rösträkningen variabel utanför awk blocket, liksom ..

Kod:
s=`expr count / m`

(m är ett skal variabel)

Jag kom över hur man kan få skalvariabler inuti awk block, men är det möjligt att få tillgång till värden awk variabler utanför awk block?

behag hjälpa mig
tack på förhand.

Senast redigerad av Yogesh Sawant; 05-13-2008 vid 09:57.. Orsak: lagt till kod taggar
  #2 (permalänk)  
Old 05-12-2008
aju_kup aju_kup is offline
Registered User
  
 

Join Date: Jul 2006
Inlägg: 189

Kod:
count=$(nawk '{
.
.
.
count=count+1
print count

}' )

  #3 (permalänk)  
Old 05-13-2008
saniya saniya is offline
Registered User
  
 

Join Date: maj 2008
Inlägg: 4
dess inte arbetande ... anyways thanks

Min exakta problemet är att jag hav en loggfil fil och jag måste övervaka loggfilen, har rader som ...


Kod:
19 Mar 01:01:17:845 [Servlet.Engine.Transports : 3] AUDIT event.platform.interactionCompleted - name=,duration=9247 (IID=0003080248636880, TID=0030000248650301, CAPPID=000C0546517C)

Här måste jag extrahera dvs varaktighet värde 9.247 och jämföra det med en timeout tröskelvärde, om den är större än detta värde, räkna alla sådana linjer.
Läs då ett förhållande time out räknas för att räkna av den totala interactions.i skrev ett manus som


Kod:
TRNSthreshold=5000
nawk -v v1=$TRNSthreshold '/interactionCompleted/ {var1=$10
if ((x=(index(var1,","))) > 0)
{
  time=(substr(var1,x+1,length(var1)))
     if((y=(index(time,"="))) > 0)
      {
       t=0+(substr(time,y+1,length(time)))
      }

}
if (t > v1)
{
print "duration greater than threshold value: " t
count=count+1
print "count of interactions timed out " count
}
}' 0003080248636880.txt

m=`grep -c "interaction Completed" 0003080248636880.txt`
echo "total count of interactions" $m

s=`expr $count / $m`
echo "ratio is " $s

Mitt problem är jag nt har tillgång till värdet räkna utanför awk blocket.
please help me.thanks i förväg

Senast redigerad av Yogesh Sawant; 05-13-2008 vid 09:59.. Orsak: lagt till kod taggar
  #4 (permalänk)  
Old 05-13-2008
eran era is offline Forum Advisor  
Herder av Useless Cats (På sabbatsår)
  
 

Join Date: mars 2008
Ort: / det är / / bara / bin / sh
Inlägg: 3652
Du är bättre att beräkna förhållandet inuti awk manus också, förutom expr kan inte procentsatser, bara integer arithmetic (sic).

I det mer allmänna fallet, gör din awk script skriva ut vad du vill smuggla tillbaka ut i skalet och kör det i baklängescitationstecken, som du gör med grep-c nu att få räkna av interaktioner.

Det faktum att man kan passera i en sträng som representerar en awk program inte betyda att du får tillgång till awk interna tillstånd när det körs, inte mer än du kan få tillgång till grep: s inre tillstånd när det körs. Du kan skicka in bidrag, och få tillbaka produktionen.
  #5 (permalänk)  
Old 05-13-2008
aju_kup aju_kup is offline
Registered User
  
 

Join Date: Jul 2006
Inlägg: 189

Kod:
}

}
if (t > v1)
{
print "duration greater than threshold value: " t
count=count+1
print "count of interactions timed out " count
}
}' 0003080248636880.txt

Ändra print förklaring till


Kod:
print count

  #6 (permalänk)  
Old 05-13-2008
penchal_boddu penchal_boddu is offline
Registered User
  
 

Join Date: april 2008
Ort: Bangalore
Inlägg: 127
Hej Saniya,

Testa här

#! / bin / ksh

count \u003d 0
Tröskelvärde \u003d 5000
samtidigt läsa linje
göra
val \u003d `echo $ line | cut-d" "-F10 | cut-d" \u003d "-f3`
if [$ val-GE $ Threshold]
sedan
count \u003d `expr $ count + 1"
fi
done <0003080248636880.txt

echo "Antal Värden över tröskeln $ count"

total \u003d `grep-c" interactionCompleted "0003080248636880.txt`
echo "Totalt är $ totalt"
s \u003d `echo" scale \u003d 4; $ count / $ totalt "| bc`
echo "Average är $ s"



Tack
Penchal
Closed Thread

Komihåglista

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG] kod
HTML-koden är Av
Trackback är
Pingbacks är
Refbacks är




Alla tider är GMT -4. Klockan är nu 12:48.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2009. All Rights Reserved.Ad förvaltning RedTyger

Content Relevant webbadresser från vBSEO 3.2.0