Rearranging of values as desired


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Rearranging of values as desired
# 1  
Old 09-24-2013
Rearranging of values as desired

i have a file as below :-
Code:
100 D 22
100 T 33
100 C 89
101 C 55
101 D 44
102 D 88
103 T 22
103 C 13

output format :-
Code:
<number>  <D value> <C Value>  <T Value>

if no value then zero.

I want output as :-
Code:
100  22 33  89
101  44 55   0
102  88  0    0
103    0 13  22


Thanks in advance,
Satish

Last edited by Scott; 09-24-2013 at 06:10 AM.. Reason: Code tags
# 2  
Old 09-24-2013
Some like this
Code:
awk '{A[$1];D[$1$2]=$3} END {for (i in A) print i,D[i"D"]+0,D[i"C"]+0,D[i"T"]+0}' file
100 22 89 33
101 44 55 0
102 88 0 0
103 0 13 22


This is a more dynamic version (this change the order of DCT, but prints all value in correct column)
Code:
awk '
	{
	X[$1];Y[$1$2]=$3;Z[$2]
	} 
END {
	printf "\t"
	for (j in Z) printf "%s\t",j
	print ""
	for (i in X) {
		printf "%s\t",i
		for (j in Z) 
			printf "%s\t",Y[i j]+0
		print "" 
		}
	}' file

        C       D       T
100     89      22      33
101     55      44      0
102     0       88      0
103     13      0       22


Last edited by Jotne; 09-24-2013 at 06:48 AM..
# 3  
Old 09-25-2013
Perfect.
Thanks Jotne.
Can you explain the awk statement i could get it.

---------- Post updated 09-25-13 at 11:08 AM ---------- Previous update was 09-24-13 at 03:17 PM ----------

Thanks Jonte.I understood your code.I am explaining it below if anything is wrong plz correct me.

Assigning Section :-
A[$1] ={100,101,102,103}
D[$1$2] ~ D[100 D,100 T,100 C,101 C,101 D,102 D,103 T,103 C}={22,33,89,55,44,88,22,13}

For Loop :-

1st Record :-
for (100)
print => 100,D[100 D]+0,D[100 C]+0,D[100 T]+0
100,22+0,89+0,33+0
100,22,89,33

for (101)
print => 101,D[101 D]+0,D[101 C]+0,D[101 T]+0
101,44+0,55+0,NULL+0
101,44,55,0


Thanks for your code.
-Satish
# 4  
Old 09-25-2013
You are correct. Assigning data to array, then print them out in desired format.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Rearranging the column

I have a text file like this, I would like to rearrange the first column (Name) according to the third column(percentage)in descending order. I mean methionine with the highest percentage should be the first one to appear under the name column. But I also want to exclude the headers from this... (2 Replies)
Discussion started by: cathum
2 Replies

2. Shell Programming and Scripting

Rearranging Data Set

Hello everybody, I've got the following problem: The data set I have is an ASCII file containing a header over 4 lines and the actual data comprised of dezimal numbers in a 1000x1000 grid (1000 lines and 1000 columns). Since I want to plot the data in GMT I need to convert it into the... (3 Replies)
Discussion started by: Evilknievel
3 Replies

3. Shell Programming and Scripting

Help with rearranging file with script

Hi Guys I normally do thins with a Windows program but I am trying to rearrange a filename based on delimiters in Ubuntu. Example v017 __ Detective Academy Q #133 Murder in the Village Of Suspension Bridges &&& Part 9.cbz = Detective Academy Q v017 #133 Murder in the Village Of Suspension... (9 Replies)
Discussion started by: itschrisonline
9 Replies

4. Shell Programming and Scripting

Help with splitting and rearranging a field in awk

Please help! I figured I would take this one to the experts. I'm working with a field that contains contents such as: LastName FirstName For example: Smith John I'm trying to take this field and split it so that it is two separate fields (first name and last name). I then need to print... (5 Replies)
Discussion started by: IX3R0XI
5 Replies

5. Shell Programming and Scripting

Counting and rearranging the rows

Hi, I have a file that I re-arranged using awk and unix commands to produce a file that looks like this: JOE JOE JOE JOE JOE BOB BOB HI HI HI I want to count how many of the same rows there are and print it on the second column while only maintaining the original name once. The... (5 Replies)
Discussion started by: phil_heath
5 Replies

6. Shell Programming and Scripting

Rearranging into new columns (awk?)

Hi experts, I've used several solutions from this forum to delete nonsense and rearrange data in the project file I'm working on. I'm hoping you guys can give me some tips on further rearranging the data (I've seen a few solutions by searching, but one specific item has me stumped, which is only... (5 Replies)
Discussion started by: coryvp
5 Replies

7. Shell Programming and Scripting

Rearranging

Hello, I spent all day trying to write a script and cannot find the solution :( I have plenty files looking like this: several hundred lines precede the following interesting Bla xxx: Blub = -7537.37687 Blub = -100.644746 Blub = -3247.61954 . . . Blub = 1324.82567 Blub =... (2 Replies)
Discussion started by: tempestas
2 Replies

8. UNIX for Dummies Questions & Answers

Rearranging whole columns

Hello all, I have a text file that is arranged: name 3 7 2 9 5 jim a d e g k max d g u x g rob f w v k o This is just an example as my real file has >1000 individuals and >64,000 columns. I need to rearrange the file so that the columns appear in numerical order so that name... (3 Replies)
Discussion started by: doobedoo
3 Replies

9. Shell Programming and Scripting

Rearranging columns

Hi, I have an input file as follows : input.txt abcdTXXqwe axdfSYYrew dasgTXXqwt gtfsTYYwer gadfSXXerw gwerSYYTXX Now I have to get four output files. output1.txt should have the first four cloumns, Where the rows containing 5th column as T and 6th-7th columns as XX output2.txt... (5 Replies)
Discussion started by: sudhamacs
5 Replies

10. Shell Programming and Scripting

Rearranging fields from a pipe

I have a large file that I am pulling only certain fields out of but my output I would like to rearrange the field order via a pipe. I have been looking through the site and man pages and have come to a loss. I am running on HP cut -c33-38,44-46,62-65,91-98 <file> | grep -e <value> >... (4 Replies)
Discussion started by: bthomas
4 Replies
Login or Register to Ask a Question