猿问

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

尝试的脚本,要找出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
凤凰求蛊
浏览 1798回答 1
1回答

绝地无双

unset 不能这么用,需要指定数组索引,也就是数组下标,而不是数组的值,你可以这样干:#check if there are any files addedfolder_list=(1 2 3 4 5)file_list=(1 2)declare -a result_listt=0flag=0echo folder_list=${folder_list[*]}echo file_list=${file_list[*]}for m in "${folder_list[@]}"dofor l in "${file_list[@]}"doif [ "$m" == "$l" ]; thenflag=1breakfidoneif [ $flag -eq 0 ]; thenresult_list[t]=$mt=$((t+1))elseflag=0fidoneecho result_list=${result_list[*]}弄个结果数组保存结果,把在file_list里找不到的folder_list值存到结果数组中。
随时随地看视频慕课网APP
我要回答