我们如何删除从第一个到数组中的某个字符串,就像在纯字符串中一样,${..#..}
例如${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