shell 脚本求差集


线上有这样的一个需求,有两个集合, A   B  求 A-B  是什么,用shell 脚本 实现

#!/bin/bash
curDir=$(cd "$(dirname "${BASH_SOURCE[0]}")"; pwd);    #当前绝对路径
newfile=$curDir/difference_set
# get_diff_set.sh 
#  求差集 ,A -B 的集合  , 把结果 接到newfile 文件中
# $1   是指 A 集合
# $2   是指 B集合 
# 该脚本 功能  A -B 的差集结果   所求的 结果放在  当前目录下面 difference_set

cat /dev/null > ${newfile}
sumlinenumber=`wc -l $1|awk '{print $1}'`
#echo "sumline:$sumlinenumber"

for  line  in ` seq  1  $sumlinenumber `;do
        regular_tag=`sed -n "$line"p $1`
#       echo "this $regular_tag:$regular_tag"
        if   sed -n "$line"p $1| grep --color  -q  -w -E "${regular_tag}"  $2 ;then
            echo "this $line line is equal.." > /dev/null
        else
             sed -n "$line"p  $1 >> $newfile
        fi

#    echo "curline: $line"
done

[root@bdc128 4444]# cat a.txt 
Hello 
from
the
other
side 
I 
must
have
called 
a 
thousand
times 
[root@bdc128 4444]# cat b.txt 
the
other
side 
I 
must
a 
thousand
times 
bbbb


可以看出 结果没有问题,  这样就可以求 A-B    即  A与B的差集 .




                分享快乐,留住感动                                                                               ---标哥      20170831-2311


全部评论

相关推荐

珩珺:那些经历都太大太空了,实习的情况不了解,大创项目连名字、背景、目的及意义都没体现出来;地摊经济更是看完连卖的什么产品都不知道,项目成果直接写营收多少都更直观真实一点;后面那个校文体部的更是工作内容是组织活动整理流程,成果变成了当志愿者,而且你们学校本科学生会大一入学就直接当部长吗,志愿里面还提到了疫情防控,全面解封是22年12月的事情,可能时间上也有冲突。可能你花了钱人家就用AI给你随便写了点内容改了一下,没什么体现个性化的点
点赞 评论 收藏
分享
码农顶针:估计让你免费辅导老板孩子的学习
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务