arrays - 如何在 Bash 中像时尚的 zipper 一样合并两个数组?

标签 arrays bash zsh

我正在尝试将两个数组合并为一个像时尚一样的 zipper 。我很难做到这一点。

array1=(one three five seven)
array2=(two four six eight)

我尝试过使用嵌套的 for 循环,但无法弄清楚。我不希望输出为 13572468,而是 12345678。

我正在处理的实际脚本在这里 ( http://ix.io/iZR ).. 但它显然没有按预期工作。我要么打印整个 array2(例如 124683),要么只打印第一个索引,如果循环不起作用(例如 12325272)。

那么我如何获得输出:

one two three four five six seven eight

用上面两个数组?

编辑:我能够用两个 for 循环和 paste ( http://ix.io/iZU ) 解决它。看看是否有人有更好的解决方案仍然很有趣。所以如果你有时间请看一看。

最佳答案

假设两个数组大小相同,

unset result
for (( i=0; i<${#array1[*]}; ++i)); do
    result+=( "${array1[$i]}" "${array2[$i]}" )
done

关于arrays - 如何在 Bash 中像时尚的 zipper 一样合并两个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30721317/

相关文章:

javascript - 对象内的多维数组

regex - 在 bash 中使用正则表达式验证输入

zsh - 处理传递给 ZSH 函数的 "?"字符

javascript - Jquery:将输入值与数组对象进行比较,看看它们是否完全匹配

php - 如何将数组的php数组传递给Javascript

JavaScript 创建使用备份数组

bash - 如果任何命令失败,如何撤消 "set -e"使 bash 立即退出的效果?

linux - 如何比较两个文件并仅打印选定的信息?

function - zsh:找不到命令:ls

zsh - 在非交互式Shell中扩展别名