Sponsored Content
Top Forums UNIX for Beginners Questions & Answers Calculate average from a given set of keys and values Post 303038139 by MadeInGermany on Monday 26th of August 2019 02:10:05 PM
Old 08-26-2019
This smells a bit like homework/coursework, but after a week here is another example:
Code:
#!/bin/bash
ARRAY=( "ABC:60"
        "DEF:70"
        "GHI:75"
        "JKL:80" )

RANGES=( "-50" "50-70" "70-90" "90-" )

for student in "${ARRAY[@]}" ; do
    KEY="${student%%:*}"
    VALUE="${student##*:}"
    printf "%s's marks is %s.\n" "$KEY" "$VALUE"
    for ((cnt=0; cnt < ${#RANGES[@]}; cnt++)) ; do
        leftr=${RANGES[cnt]%-*}
        rightr=${RANGES[cnt]#*-}
        [ -z "$leftr" ] && leftr=0
        [ -z "$rightr" ] && rightr=999
        if [ $VALUE -ge $leftr ] && [ $VALUE -lt $rightr ] ; then
            ((COUNTS[cnt]++))
        fi
    done
done
# note: COUNTS[] was not preset, so elements with 0 are missing
# but printf "%d" will cast "" to 0
for ((cnt=0; cnt < ${#RANGES[@]}; cnt++)) ; do
    printf "%-10s %d\n" "${RANGES[cnt]}" "${COUNTS[cnt]}"
done

Output:
Code:
ABC's marks is 60.
DEF's marks is 70.
GHI's marks is 75.
JKL's marks is 80.
-50        0
50-70      1
70-90      3
90-        0


Last edited by MadeInGermany; 08-26-2019 at 03:13 PM.. Reason: the output loop was missing
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

calculate average of column 2

Hi I have fakebook.csv as following: F1(current date) F2(popularity) F3(name of book) F4(release date of book) 2006-06-21,6860,"Harry Potter",2006-12-31 2006-06-22,,"Harry Potter",2006-12-31 2006-06-23,7120,"Harry Potter",2006-12-31 2006-06-24,,"Harry Potter",2006-12-31... (0 Replies)
Discussion started by: onthetopo
0 Replies

2. Programming

calculate average

I have a file which is 2 3 4 5 6 6 so i am writing program in C to calculate mean.. #include<stdio.h> #include<string.h> #include <math.h> double CALL mean(int n , double x) main (int argc, char **argv) { char Buf,SEQ; int i; double result = 0; FILE *fp; (3 Replies)
Discussion started by: cdfd123
3 Replies

3. Shell Programming and Scripting

Calculate average time using a script

Hello, I'm hoping to get some help on calculating an average time from a list of times (hour:minute:second). Here's what my list looks like right now, it will grow (I can get the full date or change the formatting of this as well): 07:55:31 09:42:00 08:09:02 09:15:23 09:27:45 09:49:26... (4 Replies)
Discussion started by: jaredhanks
4 Replies

4. Shell Programming and Scripting

AWK novice - calculate the average

Hi, I have the following data in a file for example: P1 XXXXXXX.1 YYYYYYY.1 ZZZ.1 P1 XXXXXXX.2 YYYYYYY.2 ZZZ.2 P1 XXXXXXX.3 YYYYYYY.3 ZZZ.3 P1 XXXXXXX.4 YYYYYYY.4 ZZZ.4 P1 XXXXXXX.5 YYYYYYY.5 ZZZ.5 P1 XXXXXXX.6 YYYYYYY.6 ZZZ.6 P1 XXXXXXX.7 YYYYYYY.7 ZZZ.7 P1 XXXXXXX.8 YYYYYYY.8 ZZZ.8 P2... (6 Replies)
Discussion started by: alex2005
6 Replies

5. Shell Programming and Scripting

Calculate Average AWK

I want to calculate the average line by line of some files with several lines on them, the files are identical, just want to average the 3rd columns of those files.:wall: Example file: File 1 001 0.046 0.667267 001 0.047 0.672028 001 0.048 0.656025 001 0.049 ... (2 Replies)
Discussion started by: AriasFco
2 Replies

6. UNIX for Dummies Questions & Answers

Average for multiple keys

Hi, I want to find row-wise average of multiple columns based on 2 columns. I have 30k values in the matrix with 94 cols. Example Input for cols 4 and 5 as keys 1 2 3 a 1 4 5 6 a 1 4 2 0 a 1 1 2 3 b 2 5 6 7 b 2 9 7 5 b 2 Output 3 3 3 a 1 5 5 5 b 2Here is what I have tried,... (5 Replies)
Discussion started by: ritakadm
5 Replies

7. Shell Programming and Scripting

Calculate average of top n% of values - UNIX

Hey guys, I have several huge tab delimited files which look like this: a 1 20 a 3 15 a 5 10 b 2 15 b 6 10 c 3 23 what I am interested is to calculate the average of top n% of data in third column. So for example for this file the top 50% values are: 23 20 (Please note that it... (11 Replies)
Discussion started by: @man
11 Replies

8. Shell Programming and Scripting

Calculate Average time of one column

Hello dears, I have a log file with records like below and want to get a average of one column based on the search of one specific keyword. 2015-02-07 08:15:28 10.102.51.100 10.112.55.101 "kevin.c" POST ... (2 Replies)
Discussion started by: Newman
2 Replies

9. Shell Programming and Scripting

Calculate average, azimut and distance

Gents, Please i will to get the distance and azimut from 2 coordinates: Usig excel formula i get the correct values, but i will like to do it using awk. Example A 35089.0 50345.016 9 75 1 2101774 77 70 79 483911.6 2380106.9 137.4 1 1 6 1 A 35089.0 50345.01620 75... (8 Replies)
Discussion started by: jiam912
8 Replies

10. Shell Programming and Scripting

Calculate the average per block.

My old school way is a one liner. And will search for average from SAR, to get the data receive rate. But, I dont think it is practical or accurate,. Because it calculates to off peak hours. I am planning to change it. My cron runs every 30 mins. When my cron runs, and my time is 14:47pm,, it will... (1 Reply)
Discussion started by: invinzin21
1 Replies
scsi_setup_cdb(9F)					   Kernel Functions for Drivers 					scsi_setup_cdb(9F)

NAME
scsi_setup_cdb - setup SCSI command descriptor block (CDB) SYNOPSIS
int scsi_setup_cdb(union scsi_cdb *cdbp, uchar_t cmd, uint_t addr, uint_t cnt, uint_t othr_cdb_data); INTERFACE LEVEL
Solaris DDI specific (Solaris DDI). PARAMETERS
cdbp Pointer to command descriptor block. cmd The first byte of the SCSI group 0, 1, 2, 4, or 5 CDB. addr Pointer to the location of the data. cnt Data transfer length in units defined by the SCSI device type. For sequential devices cnt is the number of bytes. For block devices, cnt is the number of blocks. othr_cdb_data Additional CDB data. DESCRIPTION
scsi_setup_cdb() function initializes a group 0, 1, 2, 4, or 5 type of command descriptor block pointed to by cdbp using cmd, addr, cnt, othr_cdb_data. addr should be set to 0 for commands having no addressing information (for example, group 0 READ command for sequential access devices). othr_cdb_data should be additional CDB data for Group 4 commands; otherwise, it should be set to 0. scsi_setup_cdb() function does not set the LUN bits in CDB[1] as the makecom(9F) functions do. Also, the fixed bit for sequential access device commands is not set. RETURN VALUES
scsi_setup_cdb() returns: 1 Upon success. 0 Upon failure. CONTEXT
These functions can be called from a user or interrupt context. SEE ALSO
makecom(9F), scsi_pkt(9S) Writing Device Drivers American National Standard Small Computer System Interface-2 (SCSI-2) American National Standard SCSI-3 Primary Commands (SPC) SunOS 5.10 23 Jun 1997 scsi_setup_cdb(9F)
All times are GMT -4. The time now is 09:27 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy