いくつかの要素を含む配列がありますが、新しい項目を配列の先頭にプッシュしたいと思います。どうすればいいですか?
ベストアンサー1
配列の先頭に要素を追加するには、を使用します。
arr=("new_element" "${arr[@]}")
一般的にこれを行います。
arr=("new_element1" "new_element2" "..." "new_elementN" "${arr[@]}")
配列の末尾に要素を追加するには、を使用します。
arr=( "${arr[@]}" "new_element" )
あるいはその逆に
arr+=( "new_element" )
一般的にこれを行います。
arr=( "${arr[@]}" "new_element1" "new_element2" "..." "new_elementN") #Or
arr+=( "new_element1" "new_element2" "..." "new_elementN" )
配列の特定のインデックスに要素を追加するには、を使用します。
Index2の位置に要素を追加するとしましょう。到着[2]、実際に次のサブ配列をマージします。
- Indexposition2より前のすべての要素を取得する到着[0]そして到着[1];
- 配列に要素を追加します。
インデックス位置2から最後まですべての要素を取得します。到着[2]、到着[3]、…。
arr=( "${arr[@]:0:2}" "new_element" "${arr[@]:2}" )
配列から要素を削除
配列から要素(要素#3と仮定)を削除することに加えて、2つのサブ配列を連結する必要があります。最初のサブ配列は要素#3の前の要素を含み、2番目のサブ配列は要素#3の後の要素を含みます。
arr=( "${arr[@]:0:2}" "${arr[@]:3}" )
${arr[@]:0:2}
二つの要素を得る到着[0]そして到着[1]配列の先頭から始まります。${arr[@]:3}
index3からすべての要素を取得します。到着[3] 最後まで。可能な便利な方法は、要素#3(arr [2])を除いてarrを再構築することです。
del_element=3; arr=( "${arr[@]:0:$((del_element-1))}" "${arr[@]:$del_element}" )
から除外する要素を指定します
del_element=
。
要素を削除する別の方法は次のとおりです。
使用
unset
(実際に要素に「null」値を割り当てる)unset -v 'arr[2]'
配列要素の値がわかっている場合は、置換モードを使用して値を切り捨てます(空の文字列に置き換えます)。
arr=( "${arr[@]/PATTERN/}" )
印刷配列
printf '%s\n' "${arr[@]}"