jayaraj
jayaraj

Reputation: 29

Want to assign split array value into another array using shell script

I want to assign split array into another array and want to iterate nested array.

arg1="a,b,c,d"
arg2="1,2,3,4"
arg3="hi,hello,welcome"
arg4="hello,world"

IFS="," read -a val1 <<< ${arg1}
echo "val1 ${val1[@]}"
IFS="," read -a val2 <<< ${arg2}
echo "val2 ${val2[@]}"
IFS="," read -a val3 <<< ${arg3}
echo "val3 ${val3[@]}"
IFS="," read -a val4 <<< ${arg4}
echo "val4 ${val4[@]}"

operations[0]=${val1}
operations[1]=${val2}
operations[2]=${val3}
operations[3]=${val4}

echo "operations: ${operations}"

i have executed above code but how to assign nested array?

Upvotes: 0

Views: 36

Answers (1)

Ivan
Ivan

Reputation: 7297

You can try something like this:

a1=( a b c )
a2=( d e f )
a3=( g h j )

arr=(
    'a1[@]'
    'a2[@]'
    'a3[@]'
)

for i in "${arr[@]}"; { echo "${!i}"; }
a b c
d e f
g h j

Slicing also possible and spaces preserved:

a1=( a 'b 1' c )
a2=( d 'e 2' f )
a3=( g 'h 3' j )

$ for i in "${arr[@]}"; { echo "${!i:0:1}"; }
a
d
g

$ for i in "${arr[@]}"; { echo "${!i:1:1}"; }
b 1
e 2
h 3

$ for i in "${arr[@]}"; { echo "${!i:2:1}"; }
c
f
j

Upvotes: 1

Related Questions