Sponsored Content
Full Discussion: Recursive Lists in Tcl
Top Forums Shell Programming and Scripting Recursive Lists in Tcl Post 302530849 by sarbjit on Wednesday 15th of June 2011 06:35:30 AM
Old 06-15-2011
I did something like this to achieve this, you can refine this code further. Basic just here is if length of list is 1, then you need to check whether this has further some members or not.

Code:
set a "a cd {{{{lm st rm} {0 1} 2}} {1 0}} 5 6 7 8 {} ab"
set glob_var {}
proc list_eval {list_name {prefix {}}} {
    global glob_var
set end_point [expr [llength $list_name] -1]
    for {set start_point 0} {$start_point <= $end_point} {incr start_point} {
        if {[llength [lindex $list_name $start_point]] && ![regexp ^\{ [lindex $list_name $start_point]]} {
            puts "Index for [lindex $list_name $start_point] is $prefix$start_point"
           if {$start_point == $end_point} {
           set glob_var [string range $glob_var 0 end-1]
            }
        } elseif {[llength [lindex $list_name $start_point]] && [regexp ^\{ [lindex $list_name $start_point]]} {
            set new_string1 [string trimleft [lindex $list_name $start_point] \{ ]
            set new_string2 [string trimright $new_string1 \}]   
            append glob_var $start_point
            list_eval $new_string2     
        } else {
            append glob_var $start_point
            list_eval [lindex $list_name $start_point] $glob_var
       }        
}    
}    
list_eval $a

 

10 More Discussions You Might Find Interesting

1. Programming

C++ programming using lists

To test this program it must create 2 integer lists - list1, list2 - and then read and process a series of list commands from a file named "data.txt". Each command and any associated values, list number, value appears on a separate line. All I can do is get it to input the integers and then... (3 Replies)
Discussion started by: tiger13e
3 Replies

2. Shell Programming and Scripting

How to get the files lists

Hi All, Need the help in getting the file list which are generated for the time period. example if i want to get the list of file generated between 11 to 12 clock. i used the find command search the files with -cmin flag with -60. find /home/test/* -cmin -60 -type f -exec ls {} \; ... (2 Replies)
Discussion started by: nmadhuhb
2 Replies

3. Shell Programming and Scripting

Shell Script to Create non-duplicate lists from two lists

File_A contains Strings: a b c d File_B contains Strings: a c z Need to have script written in either sh or ksh. Derive resultant files (File_New_A and File_New_B) from lists File_A and File_B where string elements in File_New_A and File_New_B are listed below. Resultant... (7 Replies)
Discussion started by: mlv_99
7 Replies

4. Shell Programming and Scripting

Using foreach with two lists

Hi everybody, I'm trying to use a foreach command with two lists. The file.txt looks like this: var1: 100 200 300 var2: 3 6 9 I'm trying to use a foreach command to associate the two variables together. My script looks like this: #! /bin/tcsh set a=(`cat file.txt | grep 'var1' | cut -d... (8 Replies)
Discussion started by: SimonWhite
8 Replies

5. Shell Programming and Scripting

combining two lists

Hi, So I I received two lists for my merchandise and both are similar but differences do occur. I want to combine two lists that have similar names but I dont want the similar name to come up twice because I will end up purchasing two of those items. Heres an example below (file is massive). ... (1 Reply)
Discussion started by: kylle345
1 Replies

6. Shell Programming and Scripting

get the lists

I expert, I may cross post something similar but I dirtyed my quesion somehow to be clear in the thread #cat file1 88dee gcc: Grok for callconvention-hard to enable hard float a2ad2 eglibc: package mtrace separately 61487 python: bump PR of packages after update of distutils.bbclass... (1 Reply)
Discussion started by: yanglei_fage
1 Replies

7. Shell Programming and Scripting

Listing cross cases within lists in TCL

Hello everyone, I am new here forgive me if I omit something, I have a problem which I can't seem to solve using TCL so I am posting it here. Here it is : I retrieve a UNKNOWN number of lists from an XML file. Let's skip the part where I retrieve these lists and say for example that you have... (4 Replies)
Discussion started by: Noobard
4 Replies

8. UNIX for Dummies Questions & Answers

Lists in awk

Hi togehter! I would like to write an awk script which prints the first column divided by the sum of the second column: So if this is my list 1 2 2 1 3 1 4 1 it should print a list like this: 1/5 2/5 3/5 4/5 My idea was to use END like this: (3 Replies)
Discussion started by: bjoern456
3 Replies

9. Shell Programming and Scripting

Issue with Lists

Hey guys, so I wrote this simple script. The first time I typed it all out, I had the issue where whatever choice I entered, it would simply tell me it was a "bad selection" aka the else output. I redid everything, and now no matter the choice, it does the backup option.. My brain hurts, and... (12 Replies)
Discussion started by: jakelawson44
12 Replies

10. Shell Programming and Scripting

Combining lists

Hello everybody. My operating system is Fedora30, shell - bash I faced combining lists. I will be glad for help regarding strings, arrays and so on. The bottom line is as follows. It is necessary to combine each element from the first list with elements from the second. if the second is longer... (4 Replies)
Discussion started by: nezabudka
4 Replies
lindex(1T)						       Tcl Built-In Commands							lindex(1T)

__________________________________________________________________________________________________________________________________________________

NAME
lindex - Retrieve an element from a list SYNOPSIS
lindex list ?index...? _________________________________________________________________ DESCRIPTION
The lindex command accepts a parameter, list, which it treats as a Tcl list. It also accepts zero or more indices into the list. The | indices may be presented either consecutively on the command line, or grouped in a Tcl list and presented as a single argument. | If no indices are presented, the command takes the form: | lindex list | or | lindex list {} | In this case, the return value of lindex is simply the value of the list parameter. | When presented with a single index, the lindex command treats list as a Tcl list and returns the index'th element from it (0 refers to the first element of the list). In extracting the element, lindex observes the same rules concerning braces and quotes and backslashes as the Tcl command interpreter; however, variable substitution and command substitution do not occur. If index is negative or greater than or equal to the number of elements in value, then an empty string is returned. If index has the value end, it refers to the last element in the list, and end-integer refers to the last element in the list minus the specified integer offset. If additional index arguments are supplied, then each argument is used in turn to select an element from the previous indexing operation, | allowing the script to select elements from sublists. The command, | lindex $a 1 2 3 | or | lindex $a {1 2 3} | is synonymous with | lindex [lindex [lindex $a 1] 2] 3 | EXAMPLES
| lindex {a b c} => a b c | lindex {a b c} {} => a b c | lindex {a b c} 0 => a | lindex {a b c} 2 => c | lindex {a b c} end => c | lindex {a b c} end-1 => b | lindex {{a b c} {d e f} {g h i}} 2 1 => h | lindex {{a b c} {d e f} {g h i}} {2 1} => h | lindex {{{a b} {c d}} {{e f} {g h}}} 1 1 0 => g | lindex {{{a b} {c d}} {{e f} {g h}}} {1 1 0} => g | SEE ALSO
list(1T), lappend(1T), linsert(1T), llength(1T), lsearch(1T), lset(1T), lsort(1T), lrange(1T), lreplace(1T) | KEYWORDS
element, index, list ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +--------------------+-----------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +--------------------+-----------------+ |Availability | SUNWTcl | +--------------------+-----------------+ |Interface Stability | Uncommitted | +--------------------+-----------------+ NOTES
Source for Tcl is available on http://opensolaris.org. Tcl 8.4 lindex(1T)
All times are GMT -4. The time now is 11:14 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy