Visit The New, Modern Unix Linux Community

Sum up numbers in a for loop

Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Sum up numbers in a for loop
# 1  
Sum up numbers in a for loop


i have to calculate some numbers, column by column.
Herfore i used a for-loop..
for i in {4..26};do awk -F"," '{x'$i'+=$'$i'}END{print '$i'"\t" x'$i'}' file.tmp;done
----- printout -----
4	660905240
5	71205272
6	8.26169e+07
7	8.85961e+07
8	8.60936e+07
9	7.42238e+07
10	5.6051e+07
11	3.79546e+07
12	2.5881e+07
13	1.82641e+07
14	1.32864e+07
15	1.02451e+07
16	8.09118e+06
17	6.51037e+06
18	5.35195e+06
19	4.40399e+06
20	3.56908e+06
21	2.90443e+06
22	2.40737e+06
23	2.03822e+06
24	1.82266e+06
25	1.85219e+06
26	2.10968e+06

and it works fine. furthermore i need the sum over the calculated second result column. i want to try to do it in "one-line". can someone help me please?

Thanks in advance,
# 2  
What are the contents of file.tmp?
This User Gave Thanks to Corona688 For This Post:
# 3  
Originally Posted by Corona688
What are the contents of file.tmp?
Hi Corona688,
first of all, thanks for supporting me.
file.tmp is a csv-file.
sample-nr in column $1
date in column $2
time in column $3
from $4 ...$26 are columns with measurement-values
252,01/22/14,10:30,454714,40308,45974,48919,47693,40963,30404,18882,10975,  ...
253,01/22/14,10:40,454764,41308,42914,48922,47634,40955,30123,19922,11254,  ...

# 4  
How about you tell us exactly what you are trying to do? I don't think your original solution was the most efficient, running awk once per line.
This User Gave Thanks to Corona688 For This Post:
# 5  
Try sth like
awk -F, '{for (i=4;i<=26;i++) SUM[i]+=$i} END {for (i=4;i<=26;i++) print i, SUM[i]}' OFS="\t" file

This User Gave Thanks to RudiC For This Post:
# 6  
Originally Posted by RudiC
Try sth like
awk -F, '{for (i=4;i<=26;i++) SUM[i]+=$i} END {for (i=4;i<=26;i++) print i, SUM[i]}' OFS="\t" file

OK, thanks for that. but after the summation of the several colums from file.tmp i want summing up the second column of the result - in blue.
4	660905240
5	71205272
6	8.26169e+07
7	8.85961e+07
25	1.85219e+06
26	2.10968e+06

# 7  

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #867
Difficulty: Medium
John McDonald developed Lisp in 1958 while he was at the Massachusetts Institute of Technology (MIT).
True or False?

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Sum even numbers from 1 to 100

I need help with this assignment. I'm very new to using UNIX/LINUX, and my only previous experience with programing anything is using python. We are writing scripts using vim, and this one I'm stumped on. "Write a shell script that finds and display the sum of even positive integers from 0 to... (5 Replies)
Discussion started by: Nastybutler
5 Replies

2. Shell Programming and Scripting

Sum of numbers in row

Need help in coding: File with several rows incl. numbers like 1 2 3 4 5 6 7 8 ... How can i build the sum of each row seperately? 10 26 ... Thx for help. Please use CODE tags as required by forum rules! (13 Replies)
Discussion started by: smitty11
13 Replies

3. Shell Programming and Scripting

Sum of numbers in three or more files

I have files : cat file1 15 88 44 667 33 4cat file2 445 66 77 3 56 (12 Replies)
Discussion started by: Natalie
12 Replies

4. Shell Programming and Scripting

Sum Numbers from different files

Hi All, I need to print the sum of numbers from different files. Input files: file1.out 10 20 30 file2.out 10 20 30 (5 Replies)
Discussion started by: saint2006
5 Replies

5. Shell Programming and Scripting

getting the sum of numbers

I basically have a file where I had to do a bunch of greps to get a list of numbers example: a file called numbers.txt 10000 10000 superman 10000 batman 10000 10000 grep '100' * | 10000 10000 10000 10000 10000 (2 Replies)
Discussion started by: zerofire123
2 Replies

6. Shell Programming and Scripting

Finding the sum of two numbers

cat *.out |grep "<some text>" | awk '{print $6}' For ex,This will reutrn me 11111 22222 is it possible to add these two numbers in the above given command itself?I can write this to a file and find the sum. But I prefer to this calculation in the above given line itself. Any... (3 Replies)
Discussion started by: prasperl
3 Replies

7. Shell Programming and Scripting

Printing the sum of a numbers

Hi I am writing a script that will produce the total of the digits with in the number. Here is the script. -bash# cat Sum_Digits if then echo "You must enter at least two digits" echo "If you enter more than two digits after the base line program this script will print the sum of the... (4 Replies)
Discussion started by: chrs0302
4 Replies

8. Shell Programming and Scripting

how to find a sum of multiple numbers

I have a command which returns some numbers as follows: $ls -l ${dbname}.ix* | awk '{print $5 }' 929792 36864 57344 73728 53248 114688 How can I find the sum of those numbers by piping this output into 'awk' or some other editor/command? Thanks a lot -A (3 Replies)
Discussion started by: aoussenko
3 Replies

9. Shell Programming and Scripting

sum numbers from stdout

hello im looking for short way to sum numbers from stdout the way i found to do it is to long for me i wander if there is shorter way to do it ok it 2 stage action this will make the list of number in to file sum.txt grep -c include *.c | awk '{l=split($0,a,":");print a;}' > sum.txt this... (1 Reply)
Discussion started by: umen
1 Replies

10. Shell Programming and Scripting

how to sum numbers in column

Hi, i want to sum all nubers in one column. Example: 12.23 11 23.01 3544.01 I'm trying to do this in awk, but it doesn't work properly. Seems like awk is summing only integers, for example: 12 11 23 3544 It cuts off numbers after dot. I used this command: akw /text/ file.txt |nawk... (1 Reply)
Discussion started by: iahveh
1 Replies

Featured Tech Videos