# How to sum 68 differents columns?

I have 68 data files. All of them have the same values in the first column, but different values in the second column.

I need to create a new file containing the first column and ANOTHER COLUMNS who is the sum of all second columns.

How can I do this?

• Can you give an example of the data? – Nathan McCoy Sep 13 '16 at 10:24
• It is a three columns file – Lodvert POATY Sep 13 '16 at 10:33
• If you add the sample data to your question instead of a comment, you can use formatting to make it more readable. – Wieland Sep 13 '16 at 10:45
• Then what's the problem Lodvert ? – SHW Sep 13 '16 at 10:54
• Could you please add a sample of two files (say, with three lines each) and what output you expect to your question? It is not entirely clear what you want. – countermode Sep 13 '16 at 11:12

Easy done with `awk`

``````awk '{sum[\$1]+=\$2}END{for(i in sum)print i sum[i]}' file{1..68}.data
``````
• That assumes the values in the first column are unique and it won't preserve the order, it would be better to index on FNR and use two arrays. – Stéphane Chazelas Sep 13 '16 at 11:55
``````awk '{f1[FNR] = \$1; f2[FNR] += \$2}
FNR > n {n = FNR}
END {for (i = 1; i <= n; i++) print f1[i], f2[i]}' ./*.data
``````
• This just popped up in the review queue. Stephane, you should know how to answer on SE, so please... – countermode Sep 13 '16 at 14:55
• @countermode, `awk` code is generally self-explanatory. Any addition to that would be useless paraphrasing. – Stéphane Chazelas Sep 13 '16 at 14:57
• Lol! - no, not for beginners I'm afraid, and not all of us don't speak awk fluently as you do either... – countermode Sep 13 '16 at 15:01
• @countermode, I'm not going to teach the basic principles of awk scripting (which IMO is the only prerequisite for understanding that answer) in all the awk answers I give. Please feel free to edit the answer to show me how you would improve it. – Stéphane Chazelas Sep 13 '16 at 15:04
• awk '{f1[FNR] = \$1; f2[FNR] += \$2} FNR > n {n = FNR} END {for (i = 1; i <= n; i++) print f1[i], f2[i]}' ./*.data (It's working ... Thank you to all. – Lodvert POATY Sep 14 '16 at 11:30