mercredi 31 décembre 2014

Building tree diagram [on hold]


Suppose I have a program P11 in a directory; it calls 2 other programs P21 & P22. Each of P21 & P22 call 2-2 other programs.


i.e.



Level-1: |--------------P11-------------|
Level-2: |--------P21----------| |----------P22----------|...
Level-3: P31 P32 P33 P34...
. . . .
. . . .


Just like a tree diagram having 100s of levels, 100s of nodes at each level and 1000s of nodes in total.


I need a shell script which will give me such a tree structure.


e.g. The shell script program is – ‘MYPGM.sh’.


It takes a parameter at runtime. We can provide a program name here e.g. P11. And the script gives such a tree diagram.


Not necessary that the output structure should be in such a diagram like format as given above. We can use indexing or anything you suggest. e.g. The output file could be as –



1. P11
1.1 P21 - 1.2 P22
1.1.1 P31 - 1.1.2 P32 – 1.2.1 P33 – 1.2.2 P34


i.e. Every program's index = it's parent's index + "." + its serial number in that parent program.


Just the thing is – the number of levels & number of nodes in each level is unknown, but very large.


The program syntax used to call another program is as below.:


CALL "CHILD_PGM_NAME"


Command to find the children programs in a given program is as below.:



egrep '^CALL| CALL ' $pgm_name > call_output | cut -d'"' -f2 call_output > call_output_cut | cat call_output_cut


I am stuck at - how to loop this command to get the above stated output file.


Can anybody suggest something?



Aucun commentaire:

Enregistrer un commentaire