如何删除数组中从第一个到某个字符串

如何删除数组中从第一个到某个字符串

我们如何删除从第一个到数组中的某个字符串,就像在纯字符串中一样,${..#..} 例如${s#abc}

$ s=(e u i o foo a)
$ t=(${s[@]#*foo})
$ echo "${t[@]}"

e u i o a

而不是预期的:

a

如何正确地解决这样的需求呢?

答案1

如果可以 zsh选择切换到,您可以这样做:

s[(r)foo,-1]=()

哪儿r撤销下标标志它允许您通过值而不是索引来引用数组成员,此处将空列表分配给从第一个 value到最后一个元素 ( )()的元素范围。foo-1

相关内容