The UNIX and Linux Forums  


Go Back   The UNIX and Linux Forums > Top Forums > Shell Programming and Scripting
.
google unix.com




View Single Post in the UNIX and Linux Forums - Click on the Thread or Permalink to View Entire Thread -->
  #1 (permalink)  
Old 08-30-2007
baghera baghera is offline
Registered User
  
 

Join Date: Aug 2007
Posts: 23
While-loop with awk

How to make a while-loop with awk.

Lets say I have a variable number of columns:

1 4 3
2 4 4
3 5 3

Now I want to add all elements of column 1, 2 and 3 and then divide them by the number of elements in each.

columns= the number of columns which is given as an argument to my script

i = the column we are adding for the moment

this is some pseudo code for what I want to be done:

while [columns > 0]
do
awk '{sum+=$i} END {print sum/NR "\t"}'
i++
column--
done

So when executed the finished result will be:

2 6.5 3.333333

But I don't get my while loop to function. Please help me. This is my code:

#############################
while [ "$columns" -gt 0 ]
do
awk_cmd=`awk -v i=$1 '{sum+=$i} END {print sum/NR}'`
echo "$data | $awk_cmd"
i=`expr $i + 1`
columns=`expr $columns - 1`
done
#############################