首先让我清楚地说明我的问题:
例如:让我们假装这是我的数组,(元素无关紧要,因为我的实际代码有所不同):
array=(jim 0 26 chris billy 78 hello foo bar)
现在说我要删除以下元素:
chris 78 hello
所以我做了:在循环数组时取消设置数组[$i].
这会正确地删除元素,但是,我最终得到一个如下所示的数组:
array=(jim 0 26 '' billy '' '' foo bar)
我需要它看起来像这样:
array=(jim 0 26 billy foo bar)
其中jim在索引0,0 @ 1,26 @等处.
如何删除数组中的元素并移动其他元素,以便数组中没有空/空格?
谢谢!
尝试这个:
$array=( "one two" "three four" "five six" ) $unset array[1] $array=( "${array[@]}" ) $echo ${array[0]} one two $echo ${array[1]} five six
Shell数组实际上不是用作可以添加和删除项目的数据结构(它们主要用于为类似情况提供第二级引用)
arr=( "one two" "three four" ) somecommand "${arr[@]}"
为一些命令提供两个而不是四个参数.但这应该适用于大多数情况.
原文地址:https://www.jb51.cc/bash/387097.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。