shell 知:并集、交集、差集

文章目录

前言

1、并集

对于两个给定集合A、B,由两个集合所有元素构成的集合,叫做A和B的并集。

记作:AUB 读作“A并B”

例: {3,5}U{2,3,4,6}= {2,3,4,5,6}

2、交集

对于两个给定集合A、B,由属于A又属于B的所有元素构成的集合,叫做A和B的交集。

记作: A∩B 读作“A交B”

例: A={1,2,3,4,5},B={3,4,5,6,8},A∩B={3,4,5}

3、差集

记A,B是两个集合,则所有属于A且不属于B的元素构成的集合,叫做集合A减集合B(或集合A与集合B之差),类似地,对于集合A、B,把集合{x∣x∈A,且x∉B}叫做A与B的差集。

记作:B-A

操作

shell 中求交集、差集、并集主要用到两个命令:sort、uniq

sort 可以将给定的数据或文件进行排序,排序后交由 uniq 处理(因为 uniq 只能处理相邻的重复行,如果不排序,将会造成统计误差)。sort 后面可以跟一些参数,例如 :-n 按照数字格式排序,-i 忽略大小写,-r 逆序输出等。可以通过 sort --help 查看更多。

uniq 可以删除数据中重复的行,得到唯一的行,可用于求并集。其中,参数-d 表示只打印重复的行(即出现次数大于1的内容),可用于求交集;参数 -u 表示只打印独有的行(即出现次数为1的内容),可用于求差集。可以通过 uniq --help 查看更多

1、并集

sort a.txt b.txt | uniq

去掉文件 a.txt 和 b.txt 中重复的行(重复内容会保留一份,相当于去除冗余内容)。

2、交集

sort a.txt b.txt | uniq -d

只打印文件 a.txt 和 b.txt 中重复的行。

3、差集

sort a.txt b.txt b.txt | uniq -u

只打印文件 a.txt,b.txt 和 b.txt 中独有的行,由于 b.txt 出现两次,所以 b.txt 中内容至少出现两次,剩下的就是 a.txt 中未出现在 b.txt 中的内容,即 a.txt 去掉 a.txt 和 b.txt 的交集。

参考

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值