![]() |
Hello and Welcome from United States to the UNIX and Linux Forums! Thank You for Visiting and Joining Our Global Community.
|
|
google unix.com
|
|||||||
| Forums | Register | Forum Rules | Links | Albums | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts and shell scripting languages here. |
More UNIX and Linux Forum Topics You Might Find Helpful
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| AWK (NAWK) and filtering values | Nicol | UNIX for Dummies Questions & Answers | 11 | 04-23-2008 04:40 AM |
| awk/nawk returning decimal values? | moutaye | Shell Programming and Scripting | 1 | 03-25-2008 03:04 PM |
| awk/nawk returning decimal values? | moutaye | SUN Solaris | 1 | 03-25-2008 03:02 PM |
| is it possible to pass external variable values to nawk? | swamymns | Shell Programming and Scripting | 1 | 02-02-2006 06:13 AM |
| nawk and variables | plimpix | Shell Programming and Scripting | 8 | 07-11-2005 11:56 AM |
![]() |
|
|
LinkBack | Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
||||
|
i'm new to shell scripting and have a problem please help me
in the script i have a nawk block which has a variable count nawk{ . . . count=count+1 print count } now i want to access the value of the count variable outside the awk block,like.. Code:
s=`expr count / m` i came across how to access shell variables inside the awk block,but is it possible to access the values of awk variables outside the awk block? please help me thanks in advance. Last edited by Yogesh Sawant; 05-13-2008 at 08:57 AM.. Reason: added code tags |
|
||||
|
its not working...anyways thanks
my exact problem is that i hav a log file file and i need to monitor the log file,it has lines like... Code:
19 Mar 01:01:17:845 [Servlet.Engine.Transports : 3] AUDIT event.platform.interactionCompleted - name=,duration=9247 (IID=0003080248636880, TID=0030000248650301, CAPPID=000C0546517C) then find out a ratio of time out counts to count of total interactions.i wrote a script like Code:
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
please help me.thanks in advance Last edited by Yogesh Sawant; 05-13-2008 at 08:59 AM.. Reason: added code tags |
|
||||
|
You're better off calculating the ratio inside the awk script too, besides expr can't do percentages, just integer arithmetic (sic).
In the more general case, make your awk script print whatever you want to smuggle back out to the shell, and run it in backticks, like you're doing with grep -c now to get the count of interactions. The fact that you can pass in a string representing an awk program doesn't mean you get access to awk's internal state once it's running, any more than you can get access to grep's inner state once it's running. You can pass in input, and get back output. |
|
||||
|
Hi Saniya,
Try this #!/bin/ksh count=0 Threshold=5000 while read line do val=`echo $line | cut -d" " -f10 | cut -d"=" -f3` if [ $val -ge $Threshold ] then count=`expr $count + 1` fi done < 0003080248636880.txt echo "Number of Values above threshold is $count" total=`grep -c "interactionCompleted" 0003080248636880.txt` echo "Total is $total" s=`echo "scale=4 ; $count/$total" | bc ` echo "Average is $s" Thanks Penchal |
| Sponsored Links | ||
|
|
![]() |
| Bookmarks |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|