我有两个数组,说:
arr1=("one" "two" "three") arr2=("two" "four" "six")
在Bash中获得这两个数组的最好方法是什么?
首先,结合数组:
arr3=("${arr1[@]}" "${arr2[@]}")
然后,应用此帖子中的解决方案对其进行重复数据删除:
# Declare an associative array declare -A arr4 # Store the values of arr3 in arr4 as keys. for k in "${arr3[@]}"; do arr4["$k"]=1; done # Extract the keys. arr5=("${!arr4[@]}")
这假定bash 4+。
在bash
4之前,
while read -r; do arr+=("$REPLY") done < <( printf '%s\n' "${arr1[@]}" "${arr2[@]}" | sort -u )
sort -u
在其输入上执行一个无重复的联合; while
循环只是把所有东西都放回到一个数组中。