Sponsored Content
Top Forums Shell Programming and Scripting Multi Dimensional array in bash Post 303012321 by nms on Friday 2nd of February 2018 06:06:04 AM
Old 02-02-2018
Multi Dimensional array in bash

Hi, I'm developing a script which contains a multi dimensional array, however for some reason the array is not iterating.

When executing the script, services are listed as arguments from argument 2. Ex voice data sms.

Code:
service=${@:2};

for services in $service
do

data_call_type=CALL_TYPE;
data_term=DATA;
voice_call_type=CALL_TYPE;
voice_term=VOICE-MO;
sms_call_type=CALL_TYPE;
sms_term=SMS-MO;
fi


done

path_dir=$TMPDIR/

for services in $service
    do
			declare -a arr_cust=("A" "B" "C" "D" "E" "F" "G" "H" "I" "J")
			declare -a arr_ids=("124" "94" "61" "85" "95" "105" "106" "107" "134" "158")
			
			for index in ${!array[*]};
			do
			
            charged_data=`grep -s $data_call_type=$data_term $path_dir/* | grep -s ACS_CUST_ID=${arr_ids[$index]} | wc -l`
 notcharged_data=`grep -s $data_call_type=$data_term $path_dir/* | grep -s ACS_CUST_ID={arr_ids[$index]} | wc -l`


eval charged="\$charged_$services"
        eval notcharged="\$notcharged_$services"
        
echo ${services}_charged $charged > $OUTPUTDIR/$(basename $0 .sh).$services.${arr_cust[$index]}


The issue i'm finding is that the grep is not working properly :

Code:
grep -s ACS_CUST_ID=${arr_ids[$index]}

also I am noticing that array is not iterating over index of both arrays. what I am after is that the each index perform all greps for charged_data and notcharged_data and output to file with extension listing the value of the index from array 'arr_cust'.

Can someone provide some help where i'm wrong in the above?

---------- Post updated at 12:06 PM ---------- Previous update was at 12:05 PM ----------

Kindly ignore the fact that for loop is doubled. This is because there are additional if conditions in the script
 

10 More Discussions You Might Find Interesting

1. Programming

Multi-Dimensional Arrays

So, I'm fooling around with multi demtional arrays, and I made this in a short amount of time: #include <stdio.h> main(int argc, char *argv) { char blah = { {'a', 'b'}, {'b', 'a'} }; int i = 0; while (i < 2) { if (argv == blah) printf("%c\n", blah); i++; } } The goal... (3 Replies)
Discussion started by: Octal
3 Replies

2. Shell Programming and Scripting

Multi Dimensional array in KSH

Is there any way to use multi dim. array in KSH ? (1 Reply)
Discussion started by: sinpeak
1 Replies

3. Shell Programming and Scripting

PHP: how can I delete empty/NULL elements from a multi-dimensional array.

Hi all I have a file that i'm running and exec(cat ./dat) against..and putting its contents into any array, then doing an exploding the array into a multi-dimension array... The 15 multi-dimensional arrays have elements that are null/empty, I would like to remove/unset these elements and then... (2 Replies)
Discussion started by: zeekblack
2 Replies

4. Shell Programming and Scripting

PHP: Search Multi-Dimensional(nested) array and export values of currenly worked on array.

Hi All, I'm writing a nagios check that will see if our ldap servers are in sync... I got the status data into a nested array, I would like to search key of each array and if "OK" is NOT present, echo other key=>values in the current array to a variable so...eg...let take the single array... (1 Reply)
Discussion started by: zeekblack
1 Replies

5. Shell Programming and Scripting

Match elements in an AWK multi-dimensional array

Hello, I have two files in the following format; file1: A B C D E F G H I J K L file2: 1 2 3 4 5 6 7 8 9 10 11 12 I have read them both in to multi-dimensional arrays. I need a file that has column 2 of the first file printed out for each column 3 of the second file ie... ... (3 Replies)
Discussion started by: cold_Que
3 Replies

6. Shell Programming and Scripting

sorting multi dimensional array

Hi there, Can someone let me know how to sort the 2 dimensional array below by column 1 then by column 2? 22 55 2222 2230 33 66 44 58 222 240 11 25 22 60 33 45 output: 11 25 22 55 22 60 33 45 33 66 44 58 (6 Replies)
Discussion started by: phoeberunner
6 Replies

7. UNIX for Dummies Questions & Answers

Help: stdin to multi-dimensional array

I cant get out of this while loop at the beginning of my program. Just reading from stdin one char at a time and storing it into a multi-array. Need to fix it with in two hours. #include <sys/wait.h> #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <unistd.h> #include... (1 Reply)
Discussion started by: unt_engn
1 Replies

8. Shell Programming and Scripting

Assign two dimensional array in bash at once

Hi, I have a 10*10 two dimensional array. How do I assign value to all it's 100 elements at once? I don't want to open two for loops and assign one by one. Thanks, Amit (2 Replies)
Discussion started by: amit14august
2 Replies

9. Shell Programming and Scripting

Multi Dimensional array

I have an array of names. Each one of the name, has a number represented to it. For example A has an ID 8, B has an ID 2. What I am after is a for loop that when the array is in position 1, a particular variable is set to the value of position 1 in array 2 declare -a arr=("A" "B" "C"... (6 Replies)
Discussion started by: nms
6 Replies

10. Shell Programming and Scripting

Assign Two Dimensional Array In Bash At Once

Hi, I have a 10*10 two dimensional array. How do I assign value to all it's 100 elements at once? I don't want to open two for loops and assign one by one. Thanks, Shuri (1 Reply)
Discussion started by: shurimano
1 Replies
ARRAY_REDUCE(3) 							 1							   ARRAY_REDUCE(3)

array_reduce - Iteratively reduce the array to a single value using a callback function

SYNOPSIS
mixed array_reduce NULL (array $array, callable $callback, [mixed $initial]) DESCRIPTION
array_reduce(3) applies iteratively the $callback function to the elements of the $array, so as to reduce the array to a single value. PARAMETERS
o $array - The input array. o $callback - mixed callback (mixed $carry, mixed $item) o $carry - Holds the return value of the previous iteration; in the case of the first iteration it instead holds the value of $ini- tial. o $item - Holds the value of the current iteration. o $initial - If the optional $initial is available, it will be used at the beginning of the process, or as a final result in case the array is empty. RETURN VALUES
Returns the resulting value. If the array is empty and $initial is not passed, array_reduce(3) returns NULL. CHANGELOG
+--------+---------------------------------------------------+ |Version | | | | | | | Description | | | | +--------+---------------------------------------------------+ | 5.3.0 | | | | | | | Changed $initial to allow mixed, previously | | | integer. | | | | +--------+---------------------------------------------------+ EXAMPLES
Example #1 array_reduce(3) example <?php function sum($carry, $item) { $carry += $item; return $carry; } function multiplication($carry, $item) { $carry *= $item; return $carry; } $a = array(1, 2, 3, 4, 5); $x = array(); var_dump(array_reduce($a, "sum")); // int(15) var_dump(array_reduce($a, "multiplication", 10)); // int(1200), because: 10*1*2*3*4*5 var_dump(array_reduce($x, "sum", "No data to reduce")); // string(17) "No data to reduce" ?> SEE ALSO
array_filter(3), array_map(3), array_unique(3), array_count_values(3). PHP Documentation Group ARRAY_REDUCE(3)
All times are GMT -4. The time now is 09:22 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy