Pair corresponding elements of 2 arrays and print
USAGE: pair arrayname1 arrayname2 arrayname3 sep::
show_pairs() { local a1=${1:?Array name required} a2=${2:?Array name required} local j=${3:?Array name required} sep=${4:-:} b1 b2 new
Store both arrays in local arrays
eval "b1=( \"\${$a1[@]}\" )" eval "b2=( \"\${$a2[@]}\" )" num=$(( ${#b1[@]} > ${#b2[@]} ? ${#b1[@]} : ${#b2[@]} )) n=-1 while [ $(( n += 1 )) -lt $num ] do new+=( "${b1[n]}$sep${b2[n]}" ) printf "%s\t%s" "${b1[n]}" "${b2[n]}" done
Copy array into $j
eval "$j=( \"\${new[@]}\" )" }