我如何使用Bash选择数组的特定项目

时间:2018-12-12 13:25:20

标签: bash

我有一个数组,我想以此为基础创建一个新数组,该数组仅包含按索引号列出的特定选定项。

例如,我想要一个仅包含twofive或索引号为[2,4]的数组

您知道如何使用bash脚本吗?我是新手  谢谢

array1=( one two three four five )
echo ${array1[@]}

结果

array2 = (two five)

2 个答案:

答案 0 :(得分:2)

据我所知,唯一的方法是创建一个新数组,一个接一个地选取每个元素:

array2=( "${array1[1]}" "${array1[4}}" ) # two five

另一方面,如果您想要切片(连续索引),则可以使用内置语法:

array2=( "${array1[@]:1:3}" ) # two three four

答案 1 :(得分:0)

您需要一个循环:

indices=(1 3)
for i in "${indices[@]}"; do  # or for i in 1 3, if you want to hard-code the indices
  array2+=("${array[i]}")
done