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
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
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
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
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
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
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
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
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
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
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
LEARN ABOUT DEBIAN
hashdelete
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