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
services(4)							   File Formats 						       services(4)

NAME
services - Internet services and aliases SYNOPSIS
/etc/inet/services /etc/services DESCRIPTION
The services file is a local source of information regarding each service available through the Internet. The services file can be used in conjunction with or instead of other services sources, including the NIS maps "services.byname" and the NIS+ table "services." Programs use the getservbyname(3SOCKET) routines to access this information. The services file contains an entry for each service. Each entry has the form: service-name port/protocol aliases service-name This is the official Internet service name. port/protocol This field is composed of the port number and protocol through which the service is provided, for instance, 512/tcp. aliases This is a list of alternate names by which the service might be requested. Fields can be separated by any number of SPACE and/or TAB characters. A number sign (#) indicates the beginning of a comment; any charac- ters that follow the comment character up to the end of the line are not interpreted by routines which search the file. Service names may contain any printable character other than a field delimiter, a NEWLINE, or a comment character. Any changes to a port assignment do not affect the actual port registration of the service. FILES
/etc/nsswitch.conf configuration file for name-service switch SEE ALSO
getservbyname(3SOCKET), inetd.conf(4), nsswitch.conf(4) NOTES
/etc/inet/services is the official SVR4 name of the services file. The symbolic link /etc/services exists for BSD compatibility. SunOS 5.10 12 Oct 2000 services(4)
All times are GMT -4. The time now is 12:34 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy