这一个工作:搜索重复的元素阵列
arr[0]="XX1 1"
arr[1]="XX2 2"
arr[2]="XX3 3"
arr[3]="XX4 4"
arr[4]="XX5 5"
arr[5]="XX1 1"
arr[6]="XX7 7"
arr[7]="XX8 8"
duplicate() { printf '%s\n' "${arr[@]}" | sort -cu |& awk -F: '{ print $5 }'; }
duplicate_match=$(duplicate)
echo "array: ${arr[@]}"
# echo "duplicate: $duplicate_match"
[[ ! $duplicate_match ]] || { echo "Found duplicate:$duplicate_match"; exit 0; }
echo "no duplicate"
具有相同的代码,这个是不行的,为什么呢?
arr[0]="XX"
arr[1]="wXyz"
arr[2]="ABC"
arr[3]="XX"
注:我开始的bash,因为时间不长
你的代码实际上并不工作,因为'sort -cu'在输入未被排序时失败;它在第一个数据集中找到的副本恰好是排序顺序中出现的第一个项目。 – chepner
pipe-andpersand组合只在c-shell中有效,不在bash中 – thom
@chepner谢谢,我将搜索如何在正确的位置对我的数组进行排序。 – user3353499