plz, i wait your help, AWK problem


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting plz, i wait your help, AWK problem
# 1  
Old 06-27-2010
plz, i wait your help, AWK problem

I have tracefile of three nodes (0 , 1 and 2 ) as follows:
Code:
+ 0.02 0 1 tcp 40 ------- 1 0.0 2.0 0 0
- 0.02 0 1 tcp 40 ------- 1 0.0 2.0 0 0
+ 0.02 2 1 tcp 40 ------- 2 2.1 0.1 0 1
- 0.02 2 1 tcp 40 ------- 2 2.1 0.1 0 1
r 0.025032 0 1 tcp 40 ------- 1 0.0 2.0 0 0
+ 0.025032 1 2 tcp 40 ------- 1 0.0 2.0 0 0
- 0.025032 1 2 tcp 40 ------- 1 0.0 2.0 0 0
r 0.025032 2 1 tcp 40 ------- 2 2.1 0.1 0 1
+ 0.025032 1 0 tcp 40 ------- 2 2.1 0.1 0 1
- 0.025032 1 0 tcp 40 ------- 2 2.1 0.1 0 1
r 0.030064 1 2 tcp 40 ------- 1 0.0 2.0 0 0
+ 0.030064 2 1 ack 40 ------- 1 2.0 0.0 0 2
- 0.030064 2 1 ack 40 ------- 1 2.0 0.0 0 2
r 0.030064 1 0 tcp 40 ------- 2 2.1 0.1 0 1
+ 0.030064 0 1 ack 40 ------- 2 0.1 2.1 0 3
- 0.030064 0 1 ack 40 ------- 2 0.1 2.1 0 3
r 0.035096 2 1 ack 40 ------- 1 2.0 0.0 0 2
+ 0.035096 1 0 ack 40 ------- 1 2.0 0.0 0 2
- 0.035096 1 0 ack 40 ------- 1 2.0 0.0 0 2
...............
...............
.............

I want an awk program which gives me an output file where : each time of node 1, i found total enqueed and total dequeed ( $3=="1") and their difference
like this form :

time ....tot of "+" by node 1....tot of "-"by node 1....(tot of "+" - tot of "-") by node 1

to have a curve : (tot of "+" - tot of "-") by node 1 = f( time )

i try this awk program :

Code:
BEGIN { t1=0;t2=0; t3=0;t4=0 }
{

if($1=="+" && $3=="1"&& $5=="tcp")
{if($1=="-")
{
t3+=$6;
}

t1=$2;
t2+=$6;
t4=t2-t3;
{print "\t\n"t1,t2,t3,t4}
}
} 
END {""}

but without goud result

plz, i wait your help

Last edited by radoulov; 06-27-2010 at 05:50 PM.. Reason: Please use code tags!
# 2  
Old 06-27-2010
Could you post an example output given the above input?
# 3  
Old 06-27-2010
Code:
[asaadaoui@elec ~]$ awk -f 3var2.awk salem.tr> 3var2.txt
[asaadaoui@elec ~]$ gedit 3var2.txt

i have this output file : 3var2.txt




0.025032 40 0 40
	
0.025032 80 0 80
	
0.04596 1120 0 1120
	
0.04596 2160 0 2160
	
0.046792 3200 0 3200
	
0.046792 4240 0 4240
	
0.067688 5280 0 5280
	
0.067688 6320 0 6320
	
0.06852 7360 0 7360
	
0.06852 8400 0 8400
	
0.069352 9440 0 9440
	
0.069352 10480 0 10480
	
0.070184 11520 0 11520
	
0.070184 12560 0 12560
	
0.089416 13600 0 13600
	
0.089416 14640 0 14640
	
0.090248 15680 0 15680
	
0.090248 16720 0 16720
	
0.09108 17760 0 17760
	
0.09108 18800 0 18800
	
0.091912 19840 0 19840
	
0.091912 20880 0 20880
	
0.092744 21920 0 21920
	
0.092744 22960 0 22960
	
0.093576 24000 0 24000
	
0.093576 25040 0 25040
	
0.094408 26080 0 26080
................
...............
................

you see that tot "-" always equal to zero

thanks to your quick reply

Last edited by radoulov; 06-27-2010 at 06:26 PM.. Reason: Added code tags!
# 4  
Old 06-27-2010
I suppose I was not clear,
I meant, could you post an example of the correct (desired) output?
# 5  
Old 06-27-2010
I suppose for example, he correct (desired) output like the following result:

Code:
0.025032    40         0       40
	
0.025032    80         40      40
	
0.04596     1120      140      980
	
0.04596      2160    1140     1020
	
0.046792     2000    1140     860
	
...............................
...............................
..............................

first is the time....second is the tot of "+" by node 1....third is the tot of "-"by node 1....forth is the difference (tot of "+" - tot of "-") by node 1

the goal of this work is to have a curve : (total of "+" - total of "-") by node 1 = f( time )

thanks for the help

Last edited by radoulov; 06-27-2010 at 07:02 PM.. Reason: Added code tags!
# 6  
Old 06-27-2010
If I understand correctly:

Code:
awk '$5 == "tcp" {
  $1 == "+" && node_plus[$3] += $6
  $1 == "-" && node_minus[$3] += $6
  print $2, node_plus[$3], node_minus[$3], \
    node_plus[$3] - node_minus[$3]
    }' infile



---------- Post updated at 12:01 AM ---------- Previous update was at 12:00 AM ----------

Do you want only node 1? The code above gives the rolling sum for all nodes (per node).
# 7  
Old 06-27-2010
yes i want only for node 1
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Windows & DOS: Issues & Discussions

Plink wait problem

Hi, I have run into a problem to which i can't seem to find any solution, posting here is my last resort. Problem: I am using plink to access my router and run a few configuration commands. When in enter configurations mode, instead of sending next command plink keeps on waiting for manual... (7 Replies)
Discussion started by: zaainabbas
7 Replies

2. Shell Programming and Scripting

[SOLVED] Problem in wait statement

Iam having a script which is used to load users and dumpfile in any given schema.Iam trying to autolog the script and have added two fucntion in it. function init_stdout_redirect { OUT_LOG=$1 OUT_PIPE=$(mktemp -u) # Create the output pipe mkfifo $OUT_PIPE # Save stdout and... (15 Replies)
Discussion started by: Vikram_Tanwar12
15 Replies

3. Shell Programming and Scripting

wait problem

Hello, I have been trying to figure out why the wait isnt waiting for the sleep process to complete till now and have found out that since sleep runs as different process and not a child process the wait isnt waiting. script: cat test|while read i do echo $i sleep 30 & done wait ps... (4 Replies)
Discussion started by: wannalearn
4 Replies

4. Shell Programming and Scripting

Interpretion problem. Plz Help me guys.

Hey friends, below mentioned script is giving me proper o/p which can be “1” or “2” echo select status_ac from db_acct where acct_num='$1'" | dbaccess elstest Now I want to interpret the o/p as follows. If o/p is 1 then “YES” If o/p is 2 then “No” And to do this I have modified above... (2 Replies)
Discussion started by: anushree.a
2 Replies

5. Shell Programming and Scripting

wait command - cat it wait for not-chile process?

Did not use 'wait' yet. How I understand by now the wait works only for child processes, started background. Is there any other way to watch completion of any, not related process (at least, a process, owned by the same user?) I need to start a background process, witch will be waiting... (2 Replies)
Discussion started by: alex_5161
2 Replies

6. UNIX for Dummies Questions & Answers

have a problem with if elif loop .. plz help me with the script

count2=0 var2=NOT if then echo"Loop1" command="egrep ',$var1," if then echo "the command is OR" command=$command"|,$var3," echo "$command" elif then command=$command"| egrep ',$var3," else ... (4 Replies)
Discussion started by: Syms
4 Replies

7. UNIX for Advanced & Expert Users

problem while getting the response back..plz help

Hi ALL: I am not able to get the response back from weblogic in the shell script. The weblogic server in different account. I am able to login to that account and bring the server up but while doing a ping, the script is failing. While the same script is running fine if I run it on the account... (1 Reply)
Discussion started by: splax
1 Replies

8. UNIX for Dummies Questions & Answers

I/O wait Problem

When running top, I notice a bit more I/O wait time than usual. Is there a tool or piece of software out there that can me help evaluate the performance of these operations on my machine? Thanks! (5 Replies)
Discussion started by: unavb
5 Replies

9. Linux

Mandrake 8.00 installation/Booting problem...Plz Help

Hey everyone, I'm new to the forum. I have a problem with Mandrake 8.00; i have installed it on my old PC with no problems (none mentioned) but on re-booting after the installation it just hangs after listing the devices: Hard Disk, CD-ROM & Floppy A. I have installed it on Packard Bell with... (2 Replies)
Discussion started by: sybella1
2 Replies

10. UNIX for Dummies Questions & Answers

Multiboot problem Help plz??

I have installed Win98 OS .......1st then RH7.2 with GRUB bootloader okay i.e in the Grub there is two choices 1-Linux 2-Dos also I install bootloader of linux in MBR -master boot record- when select Linux an error : ... (6 Replies)
Discussion started by: atiato
6 Replies
Login or Register to Ask a Question