3 回答

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超3個(gè)贊
echo ${Array1[@]} ${Array2[@]} | tr ' ' '\n' | sort | uniq -u
輸出量
key10
key7
key8
key9
您可以根據(jù)需要添加排序

TA貢獻(xiàn)1883條經(jīng)驗(yàn) 獲得超3個(gè)贊
每當(dāng)出現(xiàn)一個(gè)問題,處理可能無法排序的唯一值時(shí),我的腦子立刻就醒悟。這是我的看法。
碼
#!/bin/bash
diff(){
awk 'BEGIN{RS=ORS=" "}
{NR==FNR?a[$0]++:a[$0]--}
END{for(k in a)if(a[k])print k}' <(echo -n "${!1}") <(echo -n "${!2}")
}
Array1=( "key1" "key2" "key3" "key4" "key5" "key6" "key7" "key8" "key9" "key10" )
Array2=( "key1" "key2" "key3" "key4" "key5" "key6" )
Array3=($(diff Array1[@] Array2[@]))
echo ${Array3[@]}
輸出量
$ ./diffArray.sh
key10 key7 key8 key9
*注意**:像給出的其他答案一樣,如果數(shù)組中有重復(fù)的鍵,則它們只會(huì)被報(bào)告一次;這可能是或不是您正在尋找的行為。用于處理該問題的awk代碼更加混亂,而且不夠干凈。
添加回答
舉報(bào)