3

我有 4 个数组:

ARRAY1=( A B C D )
ARRAY2=( E F G )
ARRAY3=( H I J K L M )
ARRAY4=( N )

我想如何获得一个包含这些元素的新数组:

FINAL_ARRAY=( ARRAY1 A ARRAY1 B ARRAY1 C ARRAY1 D ARRAY2 E ARRAY2 F ARRAY2 G ARRAY3 H ARRAY3 I ARRAY3 J ARRAY3 K ARRAY3 L ARRAY3 M ARRAY4 N )

这可以使用某种 for 循环或 BASH 中的任何其他方式来完成吗?

谢谢。

4

1 回答 1

8
#!/bin/bash
ARRAY1=( A B C D )
ARRAY2=( E F G )
ARRAY3=( H I J K L M )
ARRAY4=( N )
ARRAYNAMES=(ARRAY1 ARRAY2 ARRAY3 ARRAY4)
for an in "${ARRAYNAMES[@]}"; do
    aref="$an[@]"
    for item in "${!aref}"; do
        NEWARRAY=("${NEWARRAY[@]}" "$an" "$item")
    done
done
echo "${NEWARRAY[@]}"

输出:

ARRAY1 A ARRAY1 B ARRAY1 C ARRAY1 D ...
于 2013-06-05T00:35:52.613 回答