linux shell 怎样比较两个数组的内容,并且把不同的部分输出

尝试的脚本,要找出folder_list比file_list多的元素,并且用一个数组保存起来#checkifthereareanyfilesaddedt=0formin"... 尝试的脚本,要找出folder_list 比file_list 多的元素,并且用一个数组保存起来
#check if there are any files added
t=0
for m in "${folder_list[@]}"
do
for l in "${file_list[@]}"
do
if [ "$m" == "$l" ]; then
unset $folder_list[$m]
fi
done

done
展开
 我来答
转转耳朵
推荐于2017-11-26 · TA获得超过735个赞
知道小有建树答主
回答量:167
采纳率:0%
帮助的人:176万
展开全部
unset 不能这么用,需要指定数组索引,也就是数组下标,而不是数组的值,你可以这样干:
#check if there are any files added
folder_list=(1 2 3 4 5)
file_list=(1 2)
declare -a result_list
t=0
flag=0
echo folder_list=${folder_list[*]}
echo file_list=${file_list[*]}
for m in "${folder_list[@]}"
do
for l in "${file_list[@]}"
do
if [ "$m" == "$l" ]; then
flag=1
break
fi
done
if [ $flag -eq 0 ]; then
result_list[t]=$m
t=$((t+1))
else
flag=0
fi
done
echo result_list=${result_list[*]}

弄个结果数组保存结果,把在file_list里找不到的folder_list值存到结果数组中。
chaoningwang
2014-07-02 · TA获得超过682个赞
知道小有建树答主
回答量:806
采纳率:83%
帮助的人:889万
展开全部
你这程序没问题啊,运行不成功吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式