Help with Data Sorting


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Help with Data Sorting
# 8  
Old 03-15-2011
printf "%s\t%s\t%s\t%s\t%s\n" "" a b c dDisplay the first line using \t as <tab> separator and \n for a newline
&&logical "AND" : if left side got processed with return code 0, then process right side
awk 'NR>1{for (i=1;i<NF+1;i++) I[$i]=$iskip first line of tst, for all other lines, scan the value of the field an put it in an associative array
A[$1]=($1==0)?1:$1;put the value of field 1 in an associative array A (but if this value is 0 then assign 1)
B[$2]=($2==0)?1:$2;put the value of field 2 in an associative array B (but if this value is 0 then assign 1)
C[$3]=($3==0)?1:$3;put the value of field 3 in an associative array C (but if this value is 0 then assign 1)
D[$4]=($4==0)?1:$4}put the value of field 4 in an associative array D (but if this value is 0 then assign 1)
ENDInstruction after the "END" word will be processed once the whole file has been scanned (refer to awk syntax manual)
{for (j in I) j scan all the possible values previously setup in array I
print display the following:
I[j],the value scanned
A[j]?1:0,if the scanned value is "true" then display 1 else display 0
B[j]?1:0,if the scanned value is "true" then display 1 else display 0
C[j]?1:0,if the scanned value is "true" then display 1 else display 0
D[j]?1:0}'if the scanned value is "true" then display 1 else display 0
OFS="\t"Output Field separator is set to <tab> key
tstname of the scanned file
sort -k1nsort the output of the previous command on key field 1 specified as numeric
Bonus info about "true"in awk, 0 or empty means "false", 1 or more or non-empty string means "true" this is why i need to check if the value is 0 : because if assigned to a field it must be reported as 1

Last edited by ctsgnb; 03-15-2011 at 07:32 PM..
This User Gave Thanks to ctsgnb For This Post:
# 9  
Old 03-15-2011
awesome ..... Your comments will help me experiment with some of the commands .. appreciate your comments Smilie
Have a nice evening
# 10  
Old 03-15-2011
Note that my solution scan the file only once ... less I/O !
This User Gave Thanks to ctsgnb For This Post:
# 11  
Old 03-15-2011
Yeah I noticed that it was faster than the other solution Smilie

---------- Post updated at 03:38 PM ---------- Previous update was at 03:35 PM ----------

Can you include another associative array which scans the value in the output columns (with 0's and 1's) and sums its up (excluding values in column 1) for example :
Code:
        a       b       c       d
0       1       1       1       1       4
1       1       0       1       0       2
2       1       1       0       1       3
3       1       0       1       0       2
4       1       0       1       1       3


Last edited by pawannoel; 03-15-2011 at 05:44 PM..
# 12  
Old 03-15-2011
Code:
# printf "%s\t%s\t%s\t%s\t%s\n" "" a b c d && awk 'NR>1{for (i=1;i<NF+1;i++) {I[$i]=$i;++J[$i]};A[$1]=($1==0)?1:$1;B[$2]=($2==0)?1:$2;C[$3]=($3==0)?1:$3;D[$4]=($4==0)?1:$4}END{for (j in I) print I[j],A[j]?1:0,B[j]?1:0,C[j]?1:0,D[j]?1:0,J[j]}' OFS="\t" tst | sort -k1n
        a       b       c       d
0       1       1       1       1       4
1       1       0       1       0       2
2       1       1       0       1       3
3       1       0       1       0       2
4       1       0       1       1       3
5       1       1       0       0       2
6       0       0       0       1       1
8       0       1       1       1       3
9       0       0       1       0       1
10      0       1       0       1       2
15      0       1       0       0       1


Last edited by ctsgnb; 03-15-2011 at 07:28 PM..
 
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How AS 400 sorting data?

Hi Gurus, I have a requests to sort data based on AS 400 sorting order. below is example: the data is sorted by ascending order. could anybody explain how AS 400 sort data? IMM00007 07918607 1242 423 (3 Replies)
Discussion started by: green_k
3 Replies

2. Shell Programming and Scripting

Sorting the data with date

Hi, PFB the data: C_Random_130417 Java_Random_130518 Perl_Random_120519 Perl_Random_120528 so the values are ending with year,i.e.,130417 i want to sort the values with date. i want the output like this: Perl_Random_120519 Perl_Random_120528 C_Random_130417 Java_Random_130518 can... (5 Replies)
Discussion started by: arindam guha
5 Replies

3. Shell Programming and Scripting

Sorting the Data

My actual data looks like below i have given only format. i can't give exact data format of my requirement due to some reasons. I this set of data lines about 5000 I need to come up with information in below exact format of my data set : Line<space>Number1<space>"somedata":... (1 Reply)
Discussion started by: ckaramsetty
1 Replies

4. UNIX for Dummies Questions & Answers

Sorting data

Hello guys. I need help figuring this one out. It's probably really easy. Thanks in advance! I have a file say for example containing this: Rice Food Carrots Food Beans Food Plates Kitchen Fork Kitchen Knives Kitchen I need: Food Rice, Carrots, Beans Kitchen Plates, Fork,... (7 Replies)
Discussion started by: visuelz
7 Replies

5. UNIX for Dummies Questions & Answers

Help with Data Sorting Command

Hi, I have a problem on data sorting, example my file as below: 123 123/789 aaa bbb ccc ddd (adf) 112 112/123 aaa bbb ccc (ade) 102 1a3/7g9 (adf)03 110 12b/129 aaa bbb ccc ddd fff(a8f)03 117 42f/8c9 aaa bbb ccc ddd (adf) 142 120/tyu fff... (7 Replies)
Discussion started by: 793589
7 Replies

6. UNIX for Dummies Questions & Answers

Sorting data from a to z

Hi, Let's say I have these 3 columns; NGC1234 6 9 SL899 4 1 NGC1075 8 3 SL709 5 2 And I want to sort the data according to the first column (from a to z) like having them as: NGC1075 8 3 NGC1234 6 9 SL709 5 2 SL899 4 1 Can that be done... (2 Replies)
Discussion started by: cosmologist
2 Replies

7. Shell Programming and Scripting

PERL data - sorting

Hello, I have a page where multiple fields and their values are displayed. But I am able to sort only a few fields. When I looked into the issue, it is seen that the for each row of info , an unique id is generated and id.txt is generated and saved. Only those fields which are inside that id.txt... (3 Replies)
Discussion started by: eagercyber
3 Replies

8. UNIX for Dummies Questions & Answers

sorting data from who by IP

Hello. I have an RS/6000 running AIX 4 and I need to be able to see if there are any users that are logged on more than once from the same terminal so I can kick them off to make room for other terminals. 64 connections is the limit. Currently I am doing this: who | more and then manually... (11 Replies)
Discussion started by: raidzero
11 Replies

9. Shell Programming and Scripting

Sorting blocks of data

Hello all, Below is what I am trying to accomplish: I have a file that looks like this /* ----------------- xxxx.y_abcd_00000050 ----------------- */ jdghjghkla sadgsdags asdgsdgasd asdgsagasdg /* ----------------- xxxx.y_abcd_00000055 ----------------- */ sdgsdg sdgxcvzxcbv... (8 Replies)
Discussion started by: alfredo123
8 Replies
Login or Register to Ask a Question