Sponsored Content
Top Forums Shell Programming and Scripting Summing up a matrix using awk Post 302602584 by chihung on Monday 27th of February 2012 07:41:16 PM
Old 02-27-2012
One-liners are to impress people the power of UNIX.

Let me try to break them down into multi-line with comments so that you can appreciate the real power
Code:
awk '
  # for every odd record number (NR) [NR%2 will equate to 1 (true) for odd NR]
  NR%2 {
    # for every field in each record (NF - number of fields)
    for (i=1; i<=NF; i++) {
      # sum them up and store in an associative array 'a', the index i corresponds to the column number
      a[i]+=$i
    }
  }

  # for every even record number (NR) [!(NR%2) will equate to 1 (true) for even NR. ! means 'not']
  !(NR%2) {
    # for every field in each record (NF - number of fields)
    for (i=1; i<=NF; i++) {
      # add the associative array to the original column position
      $i+=a[i]

      # reset assocaite array to zero
      a[i]=0
    }

    # print the whole row after the changes
    print
  }
' file

These 2 Users Gave Thanks to chihung For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk scripting - matching records and summing up time

Hello. I just found out about awk, and it appears that this could handle the problem I'm having right now. I first stumbled on the thread How to extract first and last line of different record from a file, and that problem is almost similar to mine. In my case, an ASCII file will contain the... (0 Replies)
Discussion started by: Gonik
0 Replies

2. Shell Programming and Scripting

awk matrix problem

hi there I'm very new in programing and i've started with awk. I'm processing 200 data files and I need to do some precessing on them. The files have 3 columns with N-lines for each line a have on the first and second value is the same for all the files and only the third is variable. like... (2 Replies)
Discussion started by: philstar
2 Replies

3. Shell Programming and Scripting

Awk: Summing values with group criteria

Hi Guys, I have a text file with ";" like separator F1;F2;F3;F4;F5 444;100041;IT;GLOB;1800000000 444;100041;TM;GLOB;1000000000 444;10300264;IT;GLOB;2000000000 444;10300264;IT;GLOB;2500000000 I have to sum the cullums F5 for same F2 and F3 collums The result must be: ... (7 Replies)
Discussion started by: gianluca2
7 Replies

4. Shell Programming and Scripting

awk? adjacency matrix to adjacency list / correlation matrix to list

Hi everyone I am very new at awk but think that that might be the best strategy for this. I have a matrix very similar to a correlation matrix and in practical terms I need to convert it into a list containing the values from the matrix (one value per line) with the first field of the line (row... (5 Replies)
Discussion started by: stonemonkey
5 Replies

5. Shell Programming and Scripting

Using awk to summing from a given line

My file is something like this : 03.097 03.094 03.093 03.095 03.091 04.089 06.093 07.225 08.196 06.097 06.094 05.096 04.086 I'd like to sum it from a given line to another one , e.g.: from line 10 until line 20 What s the awk way solving this ? (1 Reply)
Discussion started by: firelink
1 Replies

6. Shell Programming and Scripting

Please Help!!!! Awk for summing columns based on selected column value

a,b,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,aa,bb,cc,dd,ee,ff,gg,hh,ii a thru ii are digits and strings.... The awk needed....if coloumn 9 == i (coloumn 9 is string ), output the sum of x's(coloumn 22 ) in all records and sum of y's (coloumn 23 ) in all records in a file (records.txt).... (6 Replies)
Discussion started by: BrownBob
6 Replies

7. Shell Programming and Scripting

how to rearrange a matrix with awk

Hi, every one. I have two files ,one is in matrix like this, one is a list with the same data as the matrix. AB AE AC AD AA AF SA 3 4 5 6 4 6 SC 5 7 2 8 4 3 SD 4 6 5 3 8 3 SE 45 ... (5 Replies)
Discussion started by: xshang
5 Replies

8. Shell Programming and Scripting

awk summing specific lines and fields

Hi I would like to know if it is possible to sum some specific fields. I have this x;x;x;x;x;x;x;x;467,390,611 Bytes;0.435291 GB;0.062247 GB;0.373045 GB;11,225;157 a;a;a;a;a;a;a;a;13,805,156,846 Bytes;12.857054 GB;1.838559 GB;11.018495 GB;151,063;18,933 b;b;b;b;b;b;b;b;232,797,478,723... (5 Replies)
Discussion started by: nakaedu
5 Replies

9. Shell Programming and Scripting

Help summing a file using awk

I'm trying to sum a text file using AWK. Here is an example of the file: 600|3H68| 46 600|3H69| 46 600|3H6F| 290 600|3H6G| 24 600|3HDY| 1 600|3HDY| 3 600|3HE0| 1 600|3HE0| 3 I would like to sum the third field if the first... (7 Replies)
Discussion started by: Drenhead
7 Replies

10. Shell Programming and Scripting

awk split columns after matching on rows and summing the last column

input: chr1 1 2 3 chr1 1 2 4 chr1 2 4 5 chr2 3 6 9 chr2 3 6 10 Code: awk '{a+=$4}END{for (i in a) print i,a}' input Output: chr112 7 chr236 19 chr124 5 Desired output: chr1 1 2 7 chr2 3 6 19 chr1 2 4 5 (1 Reply)
Discussion started by: jacobs.smith
1 Replies
pow(3M) 						  Mathematical Library Functions						   pow(3M)

NAME
pow, powf, powl - power function SYNOPSIS
cc [ flag... ] file... -lm [ library... ] #include <math.h> double pow(double x, double y); float powf(float x, float y); long double powl(long double x, long double y); DESCRIPTION
These functions compute the value of x raised to the power y, x**y. If x is negative, y must be an integer value. RETURN VALUES
Upon successful completion, these functions return the value of x raised to the power y. For finite values of x < 0, and finite non-integer values of y, a domain error occurs and either a NaN (if representable), or an implemen- tation-defined value shall be returned. If the correct value would cause overflow, a range error occurs and pow(), powf(), and powl() return HUGE_VAL, HUGE_VALF, and HUGE_VALL, respectively. If x or y is a NaN, a NaN is returned unless: o For any finite value of y, if x is +1 and y is either +-Inf or NaN and the application is SUSv3-conforming (see standards(5)), 1.0 is returned. o For any value of x (including NaN), if y is +-0, 1.0 is returned. For any odd integer value of y > 0, if x is +-0, +-0 is returned. For y > 0 and not an odd integer, if x is +-0, +0 is returned. If x is -1, and y is +-Inf, 1.0 is returned. For |x| < 1, if y is -Inf, +Inf is returned. For |x| > 1, if y is -Inf, +0 is returned. For |x| < 1, if y is +Inf, +0 is returned. For |x| > 1, if y is +Inf, +Inf is returned. For y an odd integer < 0, if x is -Inf, -0 is returned. For y < 0 and not an odd integer, if x is -Inf, +0 is returned. For y an odd integer > 0, if x is -Inf, -Inf is returned. For y > 0 and not an odd integer, if x is -Inf, +Inf is returned. For y < 0, if x is +Inf, +0 is returned. For y > 0, if x is +Inf, +Inf is returned. For y an odd integer < 0, if x is +-0, a pole error occurs and +-HUGE_VAL, +-HUGE_VALF, and +-HUGE_VALL are returned for pow(), powf(), and powl(), respectively. For y < 0 and not an odd integer, if x is +-0, a pole error occurs and HUGE_VAL, HUGE_VALF, and HUGE_VALL are returned for pow(), powf(), and powl(), respectively. For exceptional cases, matherr(3M) tabulates the values to be returned by pow() as specified by SVID3 and XPG3. ERRORS
These functions will fail if: Domain Error The value of x is negative and y is a finite non-integer. If the integer expression (math_errhandling & MATH_ERREXCEPT) is non-zero, the invalid floating-point exception is raised. The pow() function sets errno to EDOM if the value of x is negative and y is non-integral. Pole Error The value of x is 0 and y is negative. If the integer expression (math_errhandling & MATH_ERREXCEPT) is non-zero, the divide-by-zero floating-point exception is raised. Range Error The result overflows. If the integer expression (math_errhandling & MATH_ERREXCEPT) is non-zero, the overflow floating-point exception is raised. The pow() function sets errno to EDOM if the value to be returned would cause overflow. USAGE
An application wanting to check for exceptions should call feclearexcept(FE_ALL_EXCEPT) before calling these functions. On return, if fetestexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW | FE_UNDERFLOW) is non-zero, an exception has been raised. An application should either examine the return value or check the floating point exception flags to detect exceptions. An application can also set errno to 0 before calling pow(). On return, if errno is non-zero, an error has occurred. The powf() and powl() functions do not set errno. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Standard | +-----------------------------+-----------------------------+ |MT-Level |MT-Safe | +-----------------------------+-----------------------------+ SEE ALSO
exp(3M), feclearexcept(3M), fetestexcept(3M), isnan(3M), math.h(3HEAD), matherr(3M), attributes(5), standards(5) NOTES
Prior to Solaris 2.6, there was a conflict between the pow function in this library and the pow function in the libmp library. This con- flict was resolved by prepending mp_ to all functions in the libmp library. See mp(3MP) for details. SunOS 5.10 1 Nov 2003 pow(3M)
All times are GMT -4. The time now is 11:39 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy