首页 > 系统相关 >shell 两个数组比较,得到元素的并集、交集等

shell 两个数组比较,得到元素的并集、交集等

时间:2022-11-17 19:33:56浏览次数:187  
标签:shell test5 数组 test6 交集 list echo file uniq

linux shell 实现数组比较,取元素的并集、交集时,可以使用sort排序、uniq统计和awk数据过滤。

shell 实现如下


file_list_1=("test1" "test2" "test3" "test4" "test5" "test6")
file_list_2=("test5" "test6" "test7" "test8")

# 获取并集,A ∪ B
file_list_union=(`echo ${file_list_1[*]} ${file_list_2[*]}|sed 's/ /\n/g'|sort|uniq`)
echo ${file_list_union[*]}

# 获取交集,A n B
file_list_inter=(`echo ${file_list_1[*]} ${file_list_2[*]}|sed 's/ /\n/g'|sort|uniq -c|awk '$1!=1{print $2}'`)
echo ${file_list_inter[*]}

# 对称差集,不属于 A n B
file_list_4=(`echo ${file_list_1[*]} ${file_list_2[*]}|sed 's/ /\n/g'|sort|uniq -c|awk '$1==1{print $2}'`)
echo ${file_list_4[*]}

输入结果:

test1 test2 test3 test4 test5 test6 test7 test8
test5 test6
test1 test2 test3 test4 test7 test8

标签:shell,test5,数组,test6,交集,list,echo,file,uniq
From: https://www.cnblogs.com/const-zpc/p/16900535.html

相关文章