Sponsored Content
Top Forums UNIX for Beginners Questions & Answers Problem with getting awk to multiply a field by a value set based on condition of another field Post 303043631 by nezabudka on Sunday 2nd of February 2020 03:02:58 PM
Old 02-02-2020
Hi
I honestly didn't understand anything except the first part of the program.
So I'll just tweak the style to make it better to read
Code:
awk -F, '
NR == 1         { next }
!course[$3]     { low[$3] = $4 }
$4 < low[$3]    { low[$3] = $4 }
$4 > high[$3]   { high[$3] = $4 }
                { sum[$3] += $4; ++course[$3] }
END             { print "Name", "Low", "High", "Avg"
                  for (k in course)
                    printf "%s\t%d\t%d\t%.2f\n",  k, low[k], high[k], sum[k]/course[k]
                }
' OFS='\t' data.csv


Last edited by nezabudka; 02-02-2020 at 04:56 PM..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Find top N values for field X based on field Y's value

I want to find the top N entries for a certain field based on the values of another field. For example if N=3, we want the 3 best values for each entry: Entry1 ||| 100 Entry1 ||| 95 Entry1 ||| 30 Entry1 ||| 80 Entry1 ||| 50 Entry2 ||| 40 Entry2 ||| 20 Entry2 ||| 10 Entry2 ||| 50... (1 Reply)
Discussion started by: FrancoisCN
1 Replies

2. UNIX for Dummies Questions & Answers

awk - Summing a field based on another field

So, I need to do some summing. I have an Apache log file with the following as a typical line: 127.0.0.1 - frank "GET /apache_pb.gif HTTP/1.0" 200 2326 Now, what I'd like to do is a per-minute sum. So, I can have awk tell me the individual minutes, preserving the dates(since this is a... (7 Replies)
Discussion started by: treesloth
7 Replies

3. Shell Programming and Scripting

Update a field in a file based on condition

Hi i am new to scripting. i have a file file.dat with content as : CONTENT_STORAGE PERCENTAGE FLAG: /storage_01 64% 0 /storage_02 17% 1 I need to update the value of FLAG for a particular CONTENT_STORAGE value I have written the following code #!/bin/sh threshold=20... (1 Reply)
Discussion started by: kichu
1 Replies

4. Shell Programming and Scripting

Help with Awk finding and replacing a field based on a condition

Hi everybody, I'm trying to replace the $98 field with "T" if the last field (108th) is T I've tried awk 'BEGIN{OFS=FS="|"} {if ($108=="T")sub($98,"T"); print}' test.txt but that doesn't do anything also tried awk 'BEGIN{OFS=FS="|"}{ /*T.$/ sub($98,"T")} { print}' test.txt but... (2 Replies)
Discussion started by: jghi123
2 Replies

5. Shell Programming and Scripting

awk to count condition in field

I am trying to confirm the counts from another code and tried the below awk, but the syntax is incorrect. Basically, outputting the counts of each condition in $8. Thank you :) awk '$8==/TYPE=snp/ /TYPE=ins/ /TYPE=del/ {count++} END{print count}'... (6 Replies)
Discussion started by: cmccabe
6 Replies

6. Shell Programming and Scripting

awk to update value in field based on another field

In the tab-delimeted input file below I am trying to use awk to update the value in $2 if TYPE=ins in bold, by adding the value of HRUN= in italics. In the below since in line 1 TYPE=ins the 117282541 value in $2 has 6 added because that is the value of HRUN=. Hopefully the awk is a start but I... (2 Replies)
Discussion started by: cmccabe
2 Replies

7. Shell Programming and Scripting

awk to adjust coordinates in field based on sequential numbers in another field

I am trying to output a tab-delimited result that uses the data from a tab-delimited file to combine and subtract specific lines. If $4 matches in each line then the first matching sequential $6 value is added to $2, unless the value is 1, then the original $2 is used (like in the case of line... (3 Replies)
Discussion started by: cmccabe
3 Replies

8. Shell Programming and Scripting

Perl to update field based on a specific set of rules

In the perl below, which does execute, I am having trouble with the else in Rule 3. The digit in f{8} is extracted and used to update f accordinly along with the value in f. There can be either - * or + before the number that is extracted but the same logic applies, that is if the value is greater... (5 Replies)
Discussion started by: cmccabe
5 Replies

9. Shell Programming and Scripting

awk to change contents of field based on condition in same file

In the awk below I am trying to copy the entire contents of $6 there may be multiple values seperated by a ;, to $8, if $8 is . (lines 1 and 3 are examples). If that condition $8 is not . (line2 is an example) then that line is skipped and printed as is. The awk does execute but prints the output... (3 Replies)
Discussion started by: cmccabe
3 Replies

10. UNIX for Beginners Questions & Answers

Change the field color based on condition in email

Request your help to change the field color based on condition , if it is otherthan 0. using html in unix. Here is my condition for(i=1;i<=NF;i++) { print "<td> "$i"</td> } Please use CODE tags when displaying sample input, output, and code segments. (17 Replies)
Discussion started by: CatchMe
17 Replies
mlib_SignalLimit(3MLIB) 				    mediaLib Library Functions					   mlib_SignalLimit(3MLIB)

NAME
mlib_SignalLimit, mlib_SignalLimit_S16_S16, mlib_SignalLimit_S16S_S16S, mlib_SignalLimit_S16, mlib_SignalLimit_S16S, mlib_Signal- Limit_F32_F32, mlib_SignalLimit_F32S_F32S, mlib_SignalLimit_F32, mlib_SignalLimit_F32S - signal hard limiting SYNOPSIS
cc [ flag... ] file... -lmlib [ library... ] #include <mlib.h> mlib_status mlib_SignalLimit_S16_S16(mlib_s16 *dst, const mlib_s16 *src, const mlib_s16 *low, const mlib_s16 *high, mlib_s32 n); mlib_status mlib_SignalLimit_S16S_S16S(mlib_s16 *dst, const mlib_s16 *src, const mlib_s16 *low, const mlib_s16 *high, mlib_s32 n); mlib_status mlib_SignalLimit_S16(mlib_s16 *srcdst, const mlib_s16 *low, const mlib_s16 *high, mlib_s32 n); mlib_status mlib_SignalLimit_S16S(mlib_s16 *srcdst, const mlib_s16 *low, const mlib_s16 *high, mlib_s32 n); mlib_status mlib_SignalLimit_F32_F32(mlib_f32 *dst, const mlib_f32 *src, const mlib_f32 *low, const mlib_f32 *high, mlib_s32 n); mlib_status mlib_SignalLimit_F32S_F32S(mlib_f32 *dst, const mlib_f32 *src, const mlib_f32 *low, const mlib_f32 *high, mlib_s32 n); mlib_status mlib_SignalLimit_F32(mlib_f32 *srcdst, const mlib_f32 *low, const mlib_f32 *high, mlib_s32 n); mlib_status mlib_SignalLimit_F32S(mlib_f32 *srcdst, const mlib_f32 *low, const mlib_f32 *high, mlib_s32 n); DESCRIPTION
Each of these functions performs hard limiting. For monaural signals, the following equation is used: dst[i] = low[0] if src[i] < low[0] dst[i] = src[i] if low[0] <= src[i] < high[0] dst[i] = high[0] if src[i] >= high[0] where i = 0, 1, ..., (n - 1). For stereo signals, the following equation is used: dst[2*i] = low[0] if src[2*i] < low[0] dst[2*i] = src[2*i] if low[0] <= src[2*i] < high[0] dst[2*i] = high[0] if src[2*i] >= high[0] dst[2*i+1] = low[1] if src[2*i+1] < low[1] dst[2*i+1] = src[2*i+1] if low[1] <= src[2*i+1] < high[1] dst[2*i+1] = high[1] if src[2*i+1] >= high[1] where i = 0, 1, ..., (n - 1). PARAMETERS
Each of the functions takes some of the following arguments: dst Destination signal array. src Source signal array. srcdst Source and destination signal array. low Lower input limit. In the stereo version, low[0] contains the lower limit for channel 0, and low[1] contains the lower limit for channel 1. high Upper input limit. In the stereo version. high[0] contains the upper limit for channel 0, and high[1] contains the upper limit for channel 1. n Number of samples in the source signal array. RETURN VALUES
Each of the functions returns MLIB_SUCCESS if successful. Otherwise it returns MLIB_FAILURE. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Evolving | +-----------------------------+-----------------------------+ |MT-Level |MT-Safe | +-----------------------------+-----------------------------+ SEE ALSO
attributes(5) SunOS 5.10 10 Nov 2004 mlib_SignalLimit(3MLIB)
All times are GMT -4. The time now is 01:49 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy