Sponsored Content
Top Forums UNIX for Advanced & Expert Users Creating a hash table using shell script Post 42414 by Simerian on Wednesday 29th of October 2003 04:37:23 AM
Old 10-29-2003
Faked Hash

You could fake a hash using a pseudo-associative array. AWK provides this facility but it involves a little work in the ksh, for example:

Storing a value using a variable as a key:

where n="TEST"

typeset val_${n}=3

the value of ${val_TEST} will be seen to be 3, checked using set or env. Reading the value is a little trickier. It can be performed directly if the key name is constant:

echo "${val_TEST}"

However, to use a variable key, perform the following:

echo "$(eval echo \$val_${n})"

This acts as a pointer and should then return 3.

In order to run the hash, set or env can be used along with a pattern matching utility, i.e. grep or egrep, especially if the variable name prefix is very specific (i.e. val_).

Last edited by Simerian; 10-29-2003 at 08:10 AM..
 

10 More Discussions You Might Find Interesting

1. Programming

hash table implementations in C Language

Hello List, Iam searching for a solution where i can use hash based searching . In Detail , I have linked list which will be dynamically increasing . I need a best searching mechanisim such a way that it can take only one itereation . Right now iam using linear search which is taking... (11 Replies)
Discussion started by: vlrk
11 Replies

2. Programming

Creating a Hash Table

Dear Friends, I want to create a hash table using the standard Glib header (if possible) so that I can store a structure and keep the hash key(search key) based on a string. Any example code would be great since I am not able to get the main idea. best regards Skull (4 Replies)
Discussion started by: callmetheskull
4 Replies

3. UNIX for Dummies Questions & Answers

nested hash table

Hi, I have a nested hash table say for example as follows: %coins = ( 1 => { "Quarter"=>25, "Dime"=>10, "Nickel"=>5, }, 2 => { "asd"=>34, "qwe"=>45, ... (0 Replies)
Discussion started by: arthi
0 Replies

4. Shell Programming and Scripting

how to import external HASH table in PERL???

hello, I am creating a HASH table using file1.pl :- I want to retrieve the content of the hash table created above from another file named file2.pl :- The problem is that if I separate like this into 2 files.Then it says that HASH table is not created.So can you please tell me how to... (2 Replies)
Discussion started by: nsharath
2 Replies

5. Programming

Hash table

Hi, I hope someone can help me with the following prob.. I need to implement a hashtable whose KEYs are strings and VLAUEs are again hashtables. ie key - is a string and value -is another hashtable . So.... how am I supposed to be implementing my nested hashtable? Thanks in advance (1 Reply)
Discussion started by: andrew.paul
1 Replies

6. UNIX for Dummies Questions & Answers

Hash Table like implementation in unix

Hi all, I just downloaded this example from the net. I was looking around for a hash table like implementation in unix when I came across this. ARRAY=( "cow:moo" "dinosaur:roar" "bird:chirp" "bash:rock" ) for animal in ${ARRAY} ; do KEY=${animal%%:*} ... (8 Replies)
Discussion started by: anindyabecs
8 Replies

7. UNIX for Dummies Questions & Answers

Creating a condensed table from a pre-existing table in putty

Hello, I'm working with putty on Windows 7 professional and I'd like to know if there's a way to gather specific lines from a pre-existing table and make a new table with that information. More specifically, I'd like the program to look at a specific column, say column N, and see if any of the... (5 Replies)
Discussion started by: Deedee393
5 Replies

8. Shell Programming and Scripting

Return a hash table from a sub routine

hello, i am new to scripting and would like to know how to return a hash table from a sub routine. i tried the following, my %hash_function = (); hash_function = &return_hash(); sub return_hash { my %hash = (); ///populate the hash return %hash; } but it dosent seem to... (1 Reply)
Discussion started by: hemalathak10
1 Replies

9. Programming

Hash Table

I was looking at this script and was wondering if anyone can explain what this script does and how does it work. Thank you for any help. State* lookup(char* prefix, int create) { int i, h; State *sp = NULL ; h = hash(prefix); for (sp = statetab; sp != NULL; sp... (14 Replies)
Discussion started by: totoro125
14 Replies

10. Shell Programming and Scripting

Need to print hash of hash in table format

Hi, I have a hash of hash where it has name, activities and count i have data like this - $result->{$name}->{$activities} = $value; content of that are - name - robert tom cat peter activities - running, eating, sleeping , drinking, work i need to print output as below ... (3 Replies)
Discussion started by: asak
3 Replies
HASHSTASH(3)						 libbash hashstash Library Manual					      HASHSTASH(3)

NAME
hashstash -- libbash library that implements hash data structure SYNOPSIS
hashSet <Value> <Key> <HashName> [SubHashName [...]] $retval hashGet <Key> <HashName> [SubHashName [...]] $retval hashKeys <HashName> [SubHashName [...]] hashRemove <Key> <HashName> [SubHashName [...]] hashDelete <HashName> [SubHashName [...]] DESCRIPTION
General hashstash is a collection of functions that implement basic hash data-structure in bash scripting language. The function list: hashSet Adds a value to the hash hashGet Returns a value from the hash hashKeys Returns a list of keys of the hash hashRemove Removes a key from the hash hashDelete Deletes a hash Detailed interface description follows. FUNCTIONS DESCRIPTIONS
hashSet <Value> <Key> <Hashname> [SubHashName [...]] Adds a value to the hash. Parameters: <Value> The value to set in HashName[Key]. <Key> The key for the value Value. <HashName> [SubHashName [...]] A string that contains the name of the hash. If the hash is a sub hash of another hash, the "father hash" name MUST BE WRITTEN FIRST, followed by the sub-hash name. Value will be the value of the key Key in the hash HashName. For example if you have (or want to define) hash C, which is subhash of hash B, which is subhash of hash A, and C has a key named ckey1 with value cval1, then you should use: hashSet cval1 ckey1 A B C $retval hashGet <Key> <HashName> [SubHashName [...]] Returns the value of Key in HashName to the $retval variable. Parameters: <Key> The key that hold the value we wish to get. <HashName> [SubHashName [...]] A string that contains the name of the hash. If the hash is a sub hash of another hash, the "father hash" name MUST BE WRITTEN FIRST, followed by the sub-hash name. Return Value: The value of the key Key in the hash HashName. The value is returned in the variable $retval. $retval hashKeys <HashName> [SubHashName [...]] Returns a list of keys of the hash HashName in the variable $retval. Parameters: <HashName> [SubHashName [...]] A string that contains the name of the hash. If the hash is a sub hash of another hash, the "father hash" name MUST BE WRITTEN FIRST, followed by the sub-hash name. Return Value: The value of the key Key in the hash HashName. The value is returned in the variable $retval. hashRemove <Key> <HashName> [SubHashName [...]] Removes the key Key from the hash HashName. <Key> The key we wish to remove from HashName. <HashName> [SubHashName [...]] A string that contains the name of the hash. If the hash is a sub hash of another hash, the "father hash" name MUST BE WRITTEN FIRST, followed by the sub-hash name. This function should also be used to remove a sub-hash from its "father hash". In that case, the key will be the name of the sub-hash. hashDelete <HashName> [SubHashName [...]] Deletes the hash HashName [SubHashName [...]]. Parameters: <HashName> [SubHashName [...]] A string that contains the name of the hash. If the hash is a sub hash of another hash, the "father hash" name MUST BE WRITTEN FIRST, followed by the sub-hash name. If this function is used on a sub-hash, a key with the name of the sub-hash will remain in its "father hash" and will hold a NULL value. BUGS
A hash name can only contain characters that are valid as part of bash variable names (i.e. a-zA-Z0-9_). The same applies for hash keys. As for now, there is no way of knowing if a key represents a value or a sub-hash. If a sub-hash will be used as a key, the returned value will be its keys list. EXAMPLES
Define hash table hashA with key Akey1 with value Aval1 use: % hashSet Aval1 Akey1 Ahash Now: % hashGet Akey1 Ahash % echo $retval Aval1 % hashKeys Ahash % echo $retval Akey1 % HISTORY
The idea to write hashstash library appeared when we've discovered the full power of the bash eval function. As of the name hashstash, it has two meanings. The first, it means 'stash' of hash functions. The second is, that hashstash contains sub- hashes inside, so it looks like stash of packed information. AUTHORS
Hai Zaar <haizaar@haizaar.com> Gil Ran <gil@ran4.net> SEE ALSO
ldbash(1), libbash(1) Linux Epoch Linux
All times are GMT -4. The time now is 03:42 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy