12-04-2012
Once they are sorted you can read them line by line: as they are sorted already you can rely on all the identical key values coming one after the other. The underlying algorithm is a widely used and basic one and called: single group change and it works like this:
You have to remember your last key value. If the key value you read now is identical you are within the same group, so add the other values to sums or whatever you do within your groups.
If the key you read is not identical with the previous one you have to first end your last group - calculate any averages from the sums, etc. - then start with a new group.
Two things to take into account: when you read the first line your group changes (from "" to some value) but you should suppress group end-processing at this point, because otherwise you get a "ghost-group" with an empty key and all values zero/nil. Second, your last line will have to trigger a group change too, because otherwise the last group would not be processed.
I hope this helps.
bakunin
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
If the 4th column has - sign then the names in 3rd column has to change to some user defined names (as shown in output).
Thanx
input1
1 a aaaaa +
2 b bbbbb +
3 c ccccc +
4 d ddddd +
5 e eeeee +
6 f xxxxx +
8 h hhhhh +... (8 Replies)
Discussion started by: repinementer
8 Replies
2. Shell Programming and Scripting
Hi Friends,
In continuation to my earlier post
https://www.unix.com/shell-programming-scripting/99166-script-find-average-given-column-also-specified-number-rows.html
I am extending my problem as follows.
Input:
Column1 Column2
MAS 1
MAS 4 ... (2 Replies)
Discussion started by: ks_reddy
2 Replies
3. Shell Programming and Scripting
Hi,
I'm new to shell programming, can anyone help me on this? I want to do following operations -
1. Average salary for each country
2. Total salary for each city
and data that looks like -
salary country city
10000 zzz BN
25000 zzz BN
30000 zzz BN
10000 yyy ZN
15000 yyy ZN
... (3 Replies)
Discussion started by: shell123
3 Replies
4. Shell Programming and Scripting
Hi,
I have nine files looking similar to file1 & file2 below.
File1:
1 ABCA1
1 ABCC8
1 ABR:N
1 ACACB
1 ACAP2
1 ACOT1
1 ACSBG
1 ACTR1
1 ACTRT
1 ADAMT
1 AEN:N
1 AKAP1File2:
1 A4GAL
1 ACTBL
1 ACTL7 (4 Replies)
Discussion started by: seqbiologist
4 Replies
5. Shell Programming and Scripting
Input file 1:
A1BG
A1BG
A1BG
A1CF
A1CF
BCAS
BCAS
A2LD1
A2M
A2M
HAT
.
.
Input file 2:
A1BG All
A1CF TEMP (5 Replies)
Discussion started by: perl_beginner
5 Replies
6. Homework & Coursework Questions
Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted!
1. The problem statement, all variables and given/known data:
I am trying to complete a script which will allow me to find:
a) reads a value from the keyboard. (ask the... (4 Replies)
Discussion started by: dstewie
4 Replies
7. Shell Programming and Scripting
Hi i have data with two columns like below.
I want to find average of column values like if the value in column 2 is between 0-250000 the average of column 1 is some xx and average of column2 is ww then if value is 250001-5000000 average of column 1 is yy and average of column 2 is zz.
And my... (5 Replies)
Discussion started by: bhargavpbk88
5 Replies
8. Shell Programming and Scripting
Hi,
I would like to calculate the average of column 'y' based on the value of column 'pos'.
For example, here is file1
id pos y c
11 1 220 aa
11 4333 207 f
11 5333 112 ee
11 11116 305 e
11 11117 310 r
11 22228 781 gg
11 ... (2 Replies)
Discussion started by: jackken007
2 Replies
9. UNIX for Dummies Questions & Answers
HI,
I have a long file which looks like
"1xxx_0_1" "1xxx" 500 5 "ABC*3-DEF*3-LL"
"2yyy_0_1" "2yyy" 600 10 "ABC*2-DEF*2-LL"
"3ddd_0_1" "3ddd" 150 52 "ABC*3-DEF*3-LL"
"1xxx_0_1" "1xxx" 500 5 "ABC*3-DEF*3-LL"
"2yyy_0_1" "2yyy" 600 10 "ABC*2-DEF*2-LL"
... (3 Replies)
Discussion started by: XXLMMN
3 Replies
10. Shell Programming and Scripting
Hi,
My input file
Gene1 1
Gene1 2
Gene1 3
Gene1 0
Gene2 0
Gene2 0
Gene2 4
Gene2 8
Gene3 9
Gene3 9
Gene4 0
Condition:
If the first column matches, then look in the second column. If there is a value of zero in the second column, then don't consider that record while averaging.
... (5 Replies)
Discussion started by: jacobs.smith
5 Replies
groups(1) General Commands Manual groups(1)
NAME
groups - Displays your group membership
SYNOPSIS
groups [user]
DESCRIPTION
The groups command writes to standard output the groups to which you or the specified user belong. The Tru64 UNIX operating system allows
a user to belong to many different groups at the same time.
Your primary group is specified in the /etc/passwd file. Once you are logged in, you can change your active group with the newgrp shell
command (see sh). When you create a file, its group ID is that of your active group.
Other groups that you belong to are specified in the /etc/group file. If you belong to more than one group, you can access files belonging
to any of those groups without changing your primary group ID. These are called your concurrent groups.
NOTES
The /etc/passwd and /etc/group files must be on the same node.
EXAMPLES
To determine your group membership, enter: groups
The groups to which you belong will be displayed. For example: devel prod
FILES
Contains group information. Contains user information.
SEE ALSO
Commands: csh(1), ksh(1), sh(1)
Functions: initgroups(3), setgroups(2)
groups(1)