Number calculations


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Number calculations
# 8  
Old 11-06-2014
Populating A[] and calculate count and average:

Code:
{
   $1=$1
   for (i=1; i<=NF; i++) {
     if($i=="0" || $i+0 != 0) {
       A[++count]=$i+0
       tot+=$i+0
       if ($i+0 > max) max=$i+0
       if($i+0 < min || !min) min=$i+0
     }
   }
}
END{
    print "max = " max " and min = "min
    print "count = " count " Avg = " tot/count
}

This User Gave Thanks to Chubler_XL For This Post:
# 9  
Old 11-06-2014
Thank you, Chubler!

What if I wanted to compute the average and count after the end statement?

I've got the total using a for loop, but can't figure out how to get the count to divide it by? Initially I incremented a count variable after the first if statement, but that picked up the words that were removed. Here's what I have right now. And again - thank you so much for all your help.

Code:
{
        for (i=1; i<=NF; i++)
 {
        if($i=="0" || $i+0 != 0)
        array[$i]++
  {
        if ($i+0 > max) max=$i+0
        if($i < min || !min) min=$i+0
  }
 }
}
        END{
        for(number in array)
        total+=number
        print "The minimum number in the file: "min
        print "The maximum number in the file: "max
        print "The average of all the numbers in the file: "total
        print "The count of how many numbers are in the file: "total

# 10  
Old 11-06-2014
Be sure to test it with the same number duplicated several times.

Code:
{
        for (i=1; i<=NF; i++) {
         if($i=="0" || $i+0 != 0) {
            array[$i+0]++
            if ($i+0 > max) max=$i+0
            if($i < min || !min) min=$i+0
         }
        }
}
END{
    for(number in array) {
        total+=number*array[number]
	count+=array[number]
    }
    print "The minimum number in the file: "min
    print "The maximum number in the file: "max
    print "The average of all the numbers in the file: " total/count
    print "The count of how many numbers are in the file: "count
}

This User Gave Thanks to Chubler_XL For This Post:
# 11  
Old 11-06-2014
You're a rock star man!
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Loop doing calculations

Hello. I'm writing an awk script that looks at a .csv file and calculates the weighted grade for each student based on the scores and categories in the file. I am able to get the script to run the only issue however is that the same score for each student is the same. I'm self-teaching myself the... (1 Reply)
Discussion started by: Eric7giants
1 Replies

2. Shell Programming and Scripting

Output calculations

Attached are the is original output (zipped file) and a custom file using the awk code below in which the average reads per bait are calculated (average.txt) awk '{if(len==0){last=$4;total=$6;len=1;getline}if($4!=last){printf("%s\t%f\n", last,... (7 Replies)
Discussion started by: cmccabe
7 Replies

3. Shell Programming and Scripting

Problem with calculations

grep Quality abc.txt | awk -F"=" '{print $2}' o/p is given as 70/70 49/70 I want in the below format (percentage format) 100% 70% help me!!!!:confused::confused::confused: ---------- Post updated at 09:59 AM ---------- Previous update was at 09:57 AM ---------- Cell 01 -... (3 Replies)
Discussion started by: nikhil jain
3 Replies

4. UNIX for Dummies Questions & Answers

Doing calculations with bc on one field

Hello, I have to turn: Apple Inc.:325,64:329,57 into Apple Inc.:325,64:329,57:3,93 3,93=329,57-325,64. My code: cat beurs.txt | sed 's/\(*\):\(*\),*\(*\):\(*\),\(*\)/\4\.\5-\2\.\3/' beurs.txt | bc| tr '.' ',' | sed 's/^-*,/0,/' > winstmarges.txt; paste -d: beurs.txt winstmarges.txt; rm... (5 Replies)
Discussion started by: ikke008
5 Replies

5. UNIX for Dummies Questions & Answers

help with doing calculations on data

Dear All, I have a long list like this: 337 375 364 389 443 578 1001 20100 . . . . etc I would like to substract each value from the first entry which in this case is 337 and report it in a separate column. So the expected output looks like 337 0 (10 Replies)
Discussion started by: pawannoel
10 Replies

6. Shell Programming and Scripting

calculations in bash

HI i have following problem, i need to use split command to split files each should be cca 700 lines but i dont know how to inplement it in the scripts becasuse each time the origin file will be various size , any body got any idea cheers (2 Replies)
Discussion started by: kvok
2 Replies

7. UNIX for Dummies Questions & Answers

Date Calculations

I need to be able to use the current date and calculate 7 days ago to be stored in another variable to be passed to a file in my Unix shell script. I need the date in the following format: date '+%m/%d/%Y' or 05/16/2006 How do I calculate date minus 7 days or 1 week ago? (8 Replies)
Discussion started by: mitschcg
8 Replies

8. Shell Programming and Scripting

ksh, calculations using bc

hi all, was wondering if there is another way to do calculations in ksh scripts other than using bc ?? i am using a script to calculate average response time and my script errors out after running for a bit. e.g code i am using : averageTime=$(print "$totalTime / $numberOfEntries" |... (2 Replies)
Discussion started by: cesarNZ
2 Replies

9. UNIX for Dummies Questions & Answers

Time Calculations

I'm trying to have a loop print out statistics every X number of seconds. How can I add a specific number of seconds to a time variable and make a comparison? Thanks ahead of time. For example: startTime = `date +%H%M%S` currentTime = $startTime executeTime = startTime + X # X is equal... (5 Replies)
Discussion started by: Nysif Steve
5 Replies

10. UNIX for Dummies Questions & Answers

Float calculations

As expr is used for integer calculations, which command is used for float calculations. (1 Reply)
Discussion started by: sharmavr
1 Replies
Login or Register to Ask a Question