Sponsored Content
Top Forums Shell Programming and Scripting Awk: Dealing with whitespace in associative array indicies Post 302942774 by neutronscott on Friday 1st of May 2015 09:14:35 AM
Old 05-01-2015
... Why is whitespace a problem? It seems later part of your problem is that you're embedding shell variables in awk code, you're not properly quoting, and you've a lack of understanding of how awk splits records.

awk splits at spaces, however many there are. Then you put them in the index without any spaces because $1$2 has them stripped out. Using $1 " " $2 would squeeze multiple spaces into single ones.

Code:
echo 'ab c' | awk 'NR==1 { a[$0]="abc"; if ( "ab c" in a ) { print "index exists"} }'
index exists

Treating the entire line as the index, you see spaces work fine.

Please reword the issue if I'm not understanding you...

edit: I re-read the problem. What is the FS you're using? I see the split() uses ,.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Associative Array

Hi, I am trying to make an associative array to use in a popup_menu on a website. Here is what i have: foreach $entr ( @entries ) { $temp_uid = $entr->get_value(uid); $temp_naam = $entr->get_value(sn); $s++; } This is the popup_menu i want to use it in. popup_menu(-name=>'modcon',... (4 Replies)
Discussion started by: tine
4 Replies

2. Shell Programming and Scripting

Perl: Sorting an associative array

Hi, When using sort on an associative array: foreach $key (sort(keys(%opalfabet))){ $value = $opalfabet{$key}; $result .= $value; } How does it handle double values? It seems to me that it removes them, is that true? If so, is there a way to get... (2 Replies)
Discussion started by: tine
2 Replies

3. Shell Programming and Scripting

Problem with lookup values on AWK associative array

I'm at wits end with this issue and my troubleshooting leads me to believe it is a problem with the file formatting of the array referenced by my script: awk -F, '{if (NR==FNR) {a=$4","$3","$2}\ else {print a "," $0}}' WBTSassignments1.txt RNCalarms.tmp On the WBTSassignments1.txt file... (2 Replies)
Discussion started by: JasonHamm
2 Replies

4. Shell Programming and Scripting

awk, associative array, compare files

i have a file like this < '393200103052';'H3G';'20081204' < '393200103059';'TIM';'20110111' < '393200103061';'TIM';'20060206' < '393200103064';'OPI';'20110623' > '393200103052';'HKG';'20081204' > '393200103056';'TIM';'20110111' > '393200103088';'TIM';'20060206' Now i have to generate a file... (9 Replies)
Discussion started by: shruthi123
9 Replies

5. Shell Programming and Scripting

Help needed on Associative array in awk

Hi All, I got stuck up with shell script where i use awk. The scenario which i am working on is as below. I have a file text.txt with contents COL1 COL2 COL3 COL4 1 A 500 400 1 B 500 400 1 A 500 200 2 A 290 300 2 B 290 280 3 C 100 100 I could able to sum col 3 and col4 based on... (3 Replies)
Discussion started by: imsularif
3 Replies

6. Shell Programming and Scripting

Associative array

I have an associative array named table declare -A table table="fruit" table="veggie" table="GT" table="eminem" Now say I have a variable returning the value highway How do I find corresponding value GT ?? (this value that I find (GT in this case) is supposed to be the name of a mysql... (1 Reply)
Discussion started by: leghorn
1 Replies

7. Shell Programming and Scripting

Associative Array with more than one item per entry

Hi all I have a problem where i have a large list ( up to 1000 of items) and need to have 2 items pulled from it into variables in a bash script my list is like the following and I could have it as an array or possibly an external text file maintained separately. Every line is different and... (6 Replies)
Discussion started by: kcpoole
6 Replies

8. Shell Programming and Scripting

Morse Code with Associative Array

Continuing my quest to learn BASH, Bourne, Awk, Grep, etc. on my own through the use of a few books. I've come to an exercise that has me absolutely stumped. The specifics: 1. Using ONLY BASH scripting commands (not sed, awk, etc.), write a script to convert a string on the command line to... (22 Replies)
Discussion started by: ksmarine1980
22 Replies

9. Shell Programming and Scripting

Using associative array for comparison

Hello together, i make something wrong... I want an array that contains information to associate it for further processing. Here is something from my bash... You will know, what I'm trying to do. I have to point out in advance, that the variable $SYSOS is changing and not as static as in my... (2 Replies)
Discussion started by: Decstasy
2 Replies

10. UNIX for Beginners Questions & Answers

awk Associative Array and/or Referring to Field by String (Nonconstant String Value)

I will start with an example of what I'm trying to do and then describe how I am approaching the issue. File PS028,005 Lexeme HRS # M # PhraseType 1(1:1) 7(7) PhraseLab 501 503 ClauseType ZYq0 PS028,005 Lexeme W # L> # BNH # M #... (17 Replies)
Discussion started by: jvoot
17 Replies
GEOIP_REGION_BY_NAME(3) 						 1						   GEOIP_REGION_BY_NAME(3)

geoip_region_by_name - Get the country code and region

SYNOPSIS
array geoip_region_by_name (string $hostname) DESCRIPTION
The geoip_region_by_name(3) function will return the country and region corresponding to a hostname or an IP address. This function is currently only available to users who have bought a commercial GeoIP Region Edition. A warning will be issued if the proper database cannot be located. The names of the different keys of the returning associative array are as follows: o "country_code" -- Two letter country code (see geoip_country_code_by_name(3)) o "region" -- The region code (ex: CA for California) PARAMETERS
o $hostname - The hostname or IP address whose region is to be looked-up. RETURN VALUES
Returns the associative array on success, or FALSE if the address cannot be found in the database. EXAMPLES
Example #1 A geoip_region_by_name(3) example This will print the array containing the country code and region of the host example.com. <?php $region = geoip_region_by_name('www.example.com'); if ($region) { print_r($region); } ?> The above example will output: Array ( [country_code] => US [region] => CA ) PHP Documentation Group GEOIP_REGION_BY_NAME(3)
All times are GMT -4. The time now is 07:22 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy