associate array problems in awk


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting associate array problems in awk
# 1  
Old 10-31-2007
associate array problems in awk

hi,
i have 3 fields in a file and linked them through 2 associative arrays.. the problem is one of the associative array is working while the other is not.. the code part is:
awk ' BEGIN {
FS="|"
rc = getline < "ICX_RULES"

while ( rc == 1 )
{
rule_id=$1
rule_parameter=$2
rule_length=$3
lengthofCallingNumber[rule_length]=rule_parameter
ruleCondition[rule_parameter]=rule_id
print lengthofCallingNumber[10]
print ruleCondition[044]
rc = getline < "ICX_RULES"
}

}

a sample of the file "ICX_RULES" is :
ICX-1|044|13
ICX-2|X1|10

although print lengthofCallingNumber[10] is giving result as: X1
but, print ruleCondition[044] is not yeilding any result.
please help, and please avoid use of if condition as a part of your solution
# 2  
Old 10-31-2007
Try this way:

Code:
awk -F\| '
{
rule_id=$1
rule_parameter=$2
rule_length=$3
lengthofCallingNumber[rule_length]=rule_parameter
ruleCondition[rule_parameter]=rule_id
}
END{
print lengthofCallingNumber[10]
print ruleCondition[044]
}' ICX

# 3  
Old 10-31-2007
Indexes are take as strings, so you must use the following syntax :
Code:
print ruleCondition["044"]

When you want to force integer indexes, you can do :
Code:
lengthofCallingNumber[rule_length+0]=rule_parameter

Another way to code your awk program :
Code:
awk -F\| '

NR==FNR {
   rule_id        = $1
   rule_parameter = $2
   rule_length    = $3

   lengthofCallingNumber[rule_length] = rule_parameter
   ruleCondition[rule_parameter]      = rule_id

   next
}

{
  # Proceed record from other_file
}

END {
   print lengthofCallingNumber[10]
   print ruleCondition["044"]
}

' ICX_RULES other_file

Jean-Pierre.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Index problem in associate array in awk

I am trying to reformat the table by filling any missing rows. The final table will have consecutive IDs in the first column. My problem is the index of the associate array in the awk script. infile: S01 36407 53706 88540 S02 69343 87098 87316 S03 50133 59721 107923... (4 Replies)
Discussion started by: yifangt
4 Replies

2. UNIX Desktop Questions & Answers

How to associate files with app.? In GNOME.

Howdy! Using GNOME: gnome-terminal 2.18.2 here. QUESTION: How do I associate *txt files to a launcher object I created for Vim on my Desktop? Let's call it "MyVimLauncher". It starts Vim without any files loaded when I click on it. BUT, when I right-click "myfile.txt" to get the menu item... (1 Reply)
Discussion started by: Svenus
1 Replies

3. Shell Programming and Scripting

How to Assign an shell array to awk array?

Hello All, Can you please help me with the below. #!/bin/bash ARR="No Differences In Stage Between HASH_TOTALS & HASH_TOTALS_COMP For UNINUM:0722075 PROVIDER:5 EXTRACT_DT:30-SEP-12 VER_NUM:1" ARR="No Differences In Stage Between HASH_TOTALS & HASH_TOTALS_COMP For UNINUM:0722075 PROVIDER:5... (14 Replies)
Discussion started by: Ariean
14 Replies

4. UNIX for Dummies Questions & Answers

Problems passing strings within an array

i have a list of apps that i need to forcequit and, from time to time, that list changes. perfect excuse to manage a single array! however, my strings with spaces aren't passing as i'd like them to. here's the simple script: #!/bin/sh #-----Array apps=( firefox-bin firefox... (6 Replies)
Discussion started by: hungryd
6 Replies

5. Shell Programming and Scripting

problems with ksh array and find command

set -A allfiles `find $usrhtml -type f` i am trying to populate this array with the find command. It works fine when find is looking through a single directory but when i add a new subdirectory the files in the subdirectory get duplicated. Can anyone help me and fix this so each files in... (1 Reply)
Discussion started by: bjhum33
1 Replies

6. Programming

Populating Associate Arrays in PHP

I'm not very good at associative arrays; and working on this PHP code has got me a bit stumped. My goal is to populate a (multidimensional) associative array in a PHP while look after a MySQL query. The code fragment looks like this: while($campaign_row = mysql_fetch_array($campaigninfo)) { ... (9 Replies)
Discussion started by: Neo
9 Replies

7. Solaris

Solaris Certified System Associate

Hi All Please suggest the scope of Solaris Certified System Associate Certification. Am 3 yrs experienced in IT and working on Solaris, AIX and HP boxes. Please post if you hv information on this Thank you. (2 Replies)
Discussion started by: Srikanth Panda
2 Replies

8. Shell Programming and Scripting

Perl - Problems iwith colors while printing from dynamic array at runtime..

Hi Perl folks, I am having problems printing elements from an array at runtime. I wish to push elements into array at runtime and the print it later. Now I wish to print this matrix using colors. So I do something like this to enter the runtime values in array: ... (1 Reply)
Discussion started by: som.nitk
1 Replies

9. Shell Programming and Scripting

Array problems in CSH

Hi all, I want to use some commands and I wrap them into an array, like follows: set ALIAS_AR = ( "ls -ltr|wc -l" \ "ps -ef|grep -v grep |grep tty|wc -l" \ "who|wc -l" ) Then I use a while loop to call every step: set no = 1... (3 Replies)
Discussion started by: tpltp
3 Replies

10. UNIX for Dummies Questions & Answers

Problems associate with upgrade

Dear all, We are planning on upgrading our current HP unix 64 bites from version 11.0 to 11.11. I would like to find out all the possible problems that we will encounter especially on the application side. Can anyone provide me with list(s) or link(s) where I can find out more information? ... (0 Replies)
Discussion started by: wujee
0 Replies
Login or Register to Ask a Question