[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Fwd: Re: [ns] Trouble with awk



El Jue 09 Ago 2001 10:44, escribiste:
> Hi,
>
> i have written an awk script that should calculate the
> end to end delay for multicast packets modifying Lloyd
> Wood's awk script
>
> (http://www.isi.edu/nsnam/archive/ns-users/webarch/1999/msg02093.html)
>
> i can't get my awk script working:
>
> here is how it is inserted in my tcl script:
>
>
> proc finish {} {
> 	global ns
>
>
> exec awk {
>
> BEGIN { max_num_client = 0;
>         max_num_pack = 0;
> }
>
> {
>
> if ($1 == "v") {
>   if ( $8 == "join-group" ) {
>      isclient[$7] = 1;
>      split($9,temp,"}");
>      whichgroup[$7] =temp[1];
>      if ( $7 > max_num_client) max_num_client = $7;
> }
>
> } else {
>
> action = $1;
> time = $2;
> node_1 = $3;
> node_2 = $4;
> src = $5;
> node_1_address = $9;
> node_2_address = $10;
> packet_id = $12;
>
> if (start[packet_id] == 0) start[packet_id] =time;
>
> if ( action != "d" ) {
>   if ( action == "r" ) {
>   if (whichgroup[node_2] == $10)
> end_time[node_2,packet_id] = time;
>
> }
> } else {
>   end_time[packet_id] = -1;
> }
> }
> }
>
> END {
>        for ( x=1; x <= max_num_client; x++) {
>
>          if (isclient[x] == 1) {
>
>            for (p=1; p <= max_num_pack; p++) {
>
>              if ((p,x) in end_time)  {
>                  delay = end_time[x,p] -
> start[packet_id];
>                  print(p, x, delay);
>              }
>            }
>          }
>        }
>     }
>
>
>
> } aj/ssmawk2.tr > aj/ssmawk2.txt
>
> 	$ns flush-trace
>
> 	exit 0
> }
>
> Here is the output i get, it seems that some confusion
> rises because of some parenthesis (i've counted them,
> they should be ok!):
>
> wrong # args: should be "proc name args body"
>     while executing
> "proc finish {} {
>         global ns
>
>
> exec awk {
>
> BEGIN { max_num_client = 0;
>         max_num_pack = 0;
> }
>
> {
>
> if ($1 == "v") {
>   if ( $8 == "join-group" ) ..."
>     (file "aj/ssmawk2.tcl" line 38)
>
>
> Moreover, if i run the script from the command line:
>
> awk -f 'prog.awk' ssmawk.tr > ris.txt
>
> I get no error output but the file "ris.txt" is EMPTY
> !
>
>
> Thanks for your help.
>
>
> ______________________________________________________________________
> Do You Yahoo!?
> Il tuo indirizzo gratis e per sempre @yahoo.it su http://mail.yahoo.it

Hi,

I've just started using awk. But maybe you can try enclosing the contents of
prog.awk in the exec command in the same way you do at the command line,
between a pair of ?single quotes? ( I don't know the english name of this
sign ').


--
------------------------------------

Jose Juan Iglesias

-------------------------------------------------------

-------------------------------------------------------