Building hierarchy with the list

 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Building hierarchy with the list
# 1  
Old 10-04-2017
Building hierarchy with the list

Hi All,

Sorry for more question today. I am having a text file . Like below

Code:
704925680_TOTAL->MANUAL->TT IOR GSB
775116444_TOTAL->POO TO->TT
-572275295_TOTAL->MANUAL->MTO
-611408278_TOTAL->PRIE LEL
456690129_TOTAL->BTT TOO
475919266_TOTAL->MANUAL->COM
-172680236_TOTAL->BTT TOO->MTO
481202389_TOTAL->MANUAL->TT COM
655296953_TOTAL->POO TO->COLE
-434977163_TOTAL->POO TO->SPI
-766208436_TOTAL->MANUAL->TT 3W GSB
-1903630442_TOTAL->COLE
-541283452_TOTAL->MANUAL->CRT

These are the hierarchical data. But not on the hierarchy order. If you see all fall on total and after total the next data come in the file in the example above it is MANUAL. But the MANUAL data are not group and scattered. I am trying to bring these on the group. The data to be grouped always falls after -> . The example I have given is 3 level we may have 4 or level. The above files needs to be grouped as below



Code:
-766208436_TOTAL->MANUAL->TT 3W GSB
704925680_TOTAL->MANUAL->TT IOR GSB
-572275295_TOTAL->MANUAL->MTO
-541283452_TOTAL->MANUAL->CRT
481202389_TOTAL->MANUAL->TT COM
475919266_TOTAL->MANUAL->COM
-611408278_TOTAL->PRIE LEL
456690129_TOTAL->BTT TOO
-172680236_TOTAL->BTT TOO->MTO
775116444_TOTAL->POO TO->TT
655296953_TOTAL->POO TO->COLE
-434977163_TOTAL->POO TO->SPI
-1903630442_TOTAL->COLE

Is there any easy way to do in Perl or awk. I am thinking to do C code. Any help will be great.
# 2  
Old 10-04-2017
Try
Code:
sort -t">" -k2 file
456690129_TOTAL->BTT TOO
-172680236_TOTAL->BTT TOO->MTO
-1903630442_TOTAL->COLE
475919266_TOTAL->MANUAL->COM
-541283452_TOTAL->MANUAL->CRT
-572275295_TOTAL->MANUAL->MTO
-766208436_TOTAL->MANUAL->TT 3W GSB
481202389_TOTAL->MANUAL->TT COM
704925680_TOTAL->MANUAL->TT IOR GSB
655296953_TOTAL->POO TO->COLE
-434977163_TOTAL->POO TO->SPI
775116444_TOTAL->POO TO->TT
-611408278_TOTAL->PRIE LEL

If this doesn't satisfy your needs, pls post why and how M(ANUAL) sorts before B(TT), and C(OLE) after P(OO).
This User Gave Thanks to RudiC For This Post:
# 3  
Old 10-04-2017
Thanks that worked. I have the ID's too with delimited by ~. Tried with cut and sort it is sorting only the description. I need the whole record grouped by tag (Manual,POO TO etc)

Also one more question I have multiple level after > I can sort by each column and pipe it to next K2 right ?
Code:
179341~1704489~1704480~704925680_TOTAL->MANUAL->TT IOR GSB
179341~1704497~1704480~775116444_TOTAL->POO TO->TT
179341~1704505~1704480~-572275295_TOTAL->MANUAL->MTO
179341~1704507~1704480~-611408278_TOTAL->PRIE LEL
179341~1704509~1704480~456690129_TOTAL->BTT TOO
179341~1704481~1704480~475919266_TOTAL->MANUAL->COM

Expected output
Code:
179341~1704489~1704480~704925680_TOTAL->MANUAL->TT IOR GSB
179341~1704505~1704480~-572275295_TOTAL->MANUAL->MTO
179341~1704481~1704480~475919266_TOTAL->MANUAL->COM
179341~1704497~1704480~775116444_TOTAL->POO TO->TT
179341~1704507~1704480~-611408278_TOTAL->PRIE LEL
179341~1704509~1704480~456690129_TOTAL->BTT TOO


Last edited by arunkumar_mca; 10-04-2017 at 09:48 PM.. Reason: Added expected output
# 4  
Old 10-05-2017
What do you mean by I can sort by each column and pipe it to next K2 ?
# 5  
Old 10-05-2017
Please ignore the statement.
Quote:
Also one more question I have multiple level after > I can sort by each column and pipe it to next K2 right ?
I was asking for below where it worked using sort -K4
Code:
TOT-COL-TOOT-SOF-KID
TOT-GEK-TOOT-SOF-MAN

Now the issue I am having is with the ID's as mentioned
# 6  
Old 10-05-2017
Please be aware that a sort key by default stops at line end; to confine it to a single field, the stop position needs to be specified as well, e.g. -k4,4. Also note that it's a lower case k .
This User Gave Thanks to RudiC For This Post:
# 7  
Old 10-05-2017
Thanks. You mean to say I can make the below worked with -k4,4

Original
Code:
179341~1704489~1704480~704925680_TOTAL->MANUAL->TT IOR GSB
179341~1704497~1704480~775116444_TOTAL->POO TO->TT
179341~1704505~1704480~-572275295_TOTAL->MANUAL->MTO
179341~1704507~1704480~-611408278_TOTAL->PRIE LEL
179341~1704509~1704480~456690129_TOTAL->BTT TOO
179341~1704481~1704480~475919266_TOTAL->MANUAL->COM

Expected output

Code:
Code:
179341~1704489~1704480~704925680_TOTAL->MANUAL->TT IOR GSB
179341~1704505~1704480~-572275295_TOTAL->MANUAL->MTO
179341~1704481~1704480~475919266_TOTAL->MANUAL->COM
179341~1704497~1704480~775116444_TOTAL->POO TO->TT
179341~1704507~1704480~-611408278_TOTAL->PRIE LEL
179341~1704509~1704480~456690129_TOTAL->BTT TOO

Output after execution. Not sure how can traverse through the ~ delimiter and sort the whole record
Code:
sort -t">" -k4,4  ttt
179341~1704481~1704480~475919266_TOTAL->MANUAL->COM
179341~1704497~1704480~775116444_TOTAL->POO TO->TT
179341~1704505~1704480~-572275295_TOTAL->MANUAL->MTO
179341~1704507~1704480~-611408278_TOTAL->PRIE LEL
179341~1704509~1704480~456690129_TOTAL->BTT TOO

Login or Register to Ask a Question

Previous Thread | Next Thread

8 More Discussions You Might Find Interesting

1. Programming

DB2 Query to pick hierarchy values

Dear Team I am using DB2 v9 . I have a condition to check roles based on hierarchies like below example. 1.Ramesh has Roles as "Manager" and "Interviewer" 2.KITS has Roles as "Interviewer" 3.ANAND has Roles as "Manager" and "Interviewer" select * FROM TESTING NAME ... (6 Replies)
Discussion started by: Perlbaby
6 Replies

2. UNIX for Advanced & Expert Users

Rsync building file list/catalog path/location

Where is the file list created by rsync when it says building file list ? (1 Reply)
Discussion started by: glev2005
1 Replies

3. Shell Programming and Scripting

building table from list

Hi, I have a file with the following structure M17XX-050-01-001 1100000000 A16 1.341E+05 ... B18 3.084E+02 total 1.344E+05 XY35 5.694E+03 ... XY241 6.725E+02 total 9.897E+05 Wr81Z 5.195E+00 ... Wr91Z 1.029E+02 Wr92Z 1.285E+02 total 9.897E+05 M17XX-050-01-001 1010000000... (2 Replies)
Discussion started by: f_o_555
2 Replies

4. Shell Programming and Scripting

Script calling hierarchy

If a.sh calls b.sh, how can we know inside b.sh that it was called by a.sh? (4 Replies)
Discussion started by: chaitu_inmage
4 Replies

5. Solaris

Why are so many dirs used in solaris hierarchy?

Hi all, I would like to know the difference between the different dir structures present in solaris!!! Meaning what does /usr contain, /etc ,/opt/ ,so on... I know what /usr and /etc are used for. But why are /opt /bin /sbin /var and many more that i have missed I would appreciate if... (1 Reply)
Discussion started by: wrapster
1 Replies

6. Tips and Tutorials

Linux Filesystem Hierarchy

Hi, Please have a look this: http://tldp.org/LDP/Linux-Filesystem-Hierarchy/Linux-Filesystem-Hierarchy.pdf I think this can be very useful for a beginner/intermediate level user to understand the filesystem hierarchy and as well as it can be used as a reference to various linux commands and... (0 Replies)
Discussion started by: tayyabq8
0 Replies

7. UNIX for Dummies Questions & Answers

cp without maintaining the soucre directory tree hierarchy

Hi guys. I'm willing to copy a specific file system hierarchy, but I would not like to maintain the directory tree organization. For example: Let's say /a/b/c is the fs I'm wanting to copy to my destination, and that c is a directory with 30 files, 10 on /a/b/c , 10 on a/b/c/c1 and 10... (2 Replies)
Discussion started by: 435 Gavea
2 Replies

8. Shell Programming and Scripting

script to archive certain folders in a hierarchy

I'm new to shell scripting and I'm having a tough time figuring out how to script something. Can anyone help? Here is my setup and what I want to do: A directory contains a list of projects by year (2000, 2001, etc) and customers (01-001) all of which have the same internal directory setup... (3 Replies)
Discussion started by: medazinol
3 Replies
Login or Register to Ask a Question