【发布时间】:2018-10-31 09:15:04
【问题描述】:
我想根据索引从数组中删除多个元素。
array=("a" "b" "c" "d")
indexes=(1 3)
输出应该是
array=("a" "c")
我知道如何从知道元素索引的数组中删除元素:
如果 $i 是索引:
array=("${(@)array[1,$i-1]}" "${(@)array[$i+1,$#array]}")
但是如果我要删除多个元素怎么办?如果我遍历索引数组,一旦我删除了一个元素,其他索引将不再对应于要删除的元素。那怎么可能呢?
【问题讨论】:
-
不了解 bash,但在其他语言中我会向后循环。
-
你展示的例子是
zsh,而不是bash。 -
@chepner 所以我真的不知道如何在纯 bash 中做到这一点 :) 或者我读过它很复杂 stackoverflow.com/questions/16860877/…
-
你是否尝试在
bash做这件事? -
@chepner 是的,我是!我看到了你的编辑
标签: bash