1. 求文件行数
    cat a.txt | wc -l
  2. 交集
    sort a.txt b.txt | uniq -d
  3. 并集
    sort a.txt b.txt | uniq
  4. 差集
    (1) a.txt-b.txt
    sort a.txt b.txt b.txt | uniq -u
    (2) b.txt - a.txt:
    sort b.txt a.txt a.txt | uniq -u

命令说明:

  • sort
    使用sort可以将文件进行排序(sort排序是为了管道交给uniq进行处理,uniq只能处理相邻的行),可以使用sort后面的参数,例如 -n 按照数字格式排序,例如 -i 忽略大小写,例如使用-r 为逆序输出等
  • uniq
    uniq为删除文件中重复的行,得到文件中唯一的行,参数-d 表示的是输出出现次数大于1的内容;参数-u表示的是输出出现次数为1的内容;那么对于上述的求交集并集差集的命令做如下的解释:

命令说明:
sort a.txt b.txt | uniq -d:
将两个文件进行排序,uniq使得两个文件中的内容为唯一的,使用-d输出两个文件中次数大于1的内容,即是得到交集

sort a.txt b.txt | uniq :
将两个文件进行排序,uniq使得两个文件中的内容为唯一的,即可得到两个文件的并集

sort a.txt b.txt b.txt | uniq -u:
将两个文件排序,最后输出a.txt b.txt b.txt文件中只出现过一次的内容,因为有两个b.txt所以只会输出只在a.txt出现过一次的内容(b.txt的内容至少出现两次),即是a.txt-b.txt差集;对于b.txt-a.txt同理。

  • 样例
a.hosts
[root(0)@scripts]# cat a.hosts
10.10.1.101
10.10.1.102
10.10.1.103
10.10.1.104
[root(0)@scripts]#
b.hosts
[root(0)@scripts]# cat b.hosts
10.10.1.101
10.10.1.103
10.10.1.105
[root(0)@scripts]#
a.hosts ∩ b.hosts
[root(0)@thatsit 11:40:49 ~/scripts]# sort a.hosts b.hosts | uniq -d
10.10.1.101
10.10.1.103
[root(0)@scripts]# 
a.hosts ∪ b.hosts
[root(0)@scripts]# sort a.hosts b.hosts | uniq
10.10.1.101
10.10.1.102
10.10.1.103
10.10.1.104
10.10.1.105
[root(0)@scripts]#
a.hosts - b.hosts
[root(0)@scripts]# sort a.hosts b.hosts b.hosts | uniq -u
10.10.1.102
10.10.1.104
[root(0)@scripts]#
b.hosts - a.hosts
[root(0)@scripts]# sort a.hosts a.hosts b.hosts | uniq -u
10.10.1.105
[root(0)@scripts]#

利用shell求取两个文件的交集、差集、并集等相关推荐

  1. linux得到两个文件的交集、并集

    1. 两个文件的交集.并集(每个文件中不得有重复 也可以是多个文件) (1).取出两个文件的并集(重复的行只保留一份) cat file1 file2 | sort | uniq > file3 ...

  2. linux求两个文件的交集,并集,差集

    对单个文件去重,对两个文件取交集,取并集,取差集都用cat命令 对file去重 cat data1.txt | sort | uniq uniq只能对相邻的重复行去重,所以要先排序 删除两个文件的交集 ...

  3. 【mysql】mysql获取两个集合的交集/差集/并集

    mysql的常见场景,获取两个数据集的交集和差集 步骤 两个集合的结构要一致,对应的字段数,字段类型 将两个集合用 UNION ALL 关键字合并,这里的结果是有重复的所有集 将上面的所有集 GROU ...

  4. linux判断两个文件内容,shell怎么判断两个文件内容是否相同

    #cat diff_two_file #/bin/sbin file1=/mnt/mmc/test/aa file2=/mnt/mmc/test/bb diff $file1 $file2 > ...

  5. 利用函数求任意两个数之间的和

    利用函数求任意两个数之间的和 <!DOCTYPE html> <html lang="en"><head><meta charset=&q ...

  6. Linux shell计算两个文件的交集,并集和差集

    本文介绍linux下shell计算两个文件的交集,并集和差集的方法,提供完整测试命令与演示. 测试文件 a.txt a c 1 3 d 4 b.txt a b e 2 1 5 计算并集 sort -u ...

  7. JavaScript-84:利用函数求任意两个数的和

    1 利用函数求任意两个数的和 function getSum (num, num1) {console.log(num + num1); } getSum(1, 2); getSum(1100, 30 ...

  8. 求取两个矩形的相交区域

    在此讨论的求取两个矩形的相交区域问题中的矩形的边是平行于坐标轴的情况,不平行的暂时无讨论. 因为工作的需要求取两个矩形的相交区域面积的python程序,当时在网上找呀找,要么是说的云里雾里的,要么代码 ...

  9. C++面向对象程序设计:编写重载函数Max1(或使用函数模板)分别求取两个整数,三个整数,两个双精度,三个双精度数的最大值。

    使用C++语言编写重载函数Max1(或使用函数模板)分别求取两个整数,三个整数,两个双精度,三个双精度数的最大值. 使用重载函数Max1编写方法如下: #include <iostream> ...

最新文章

  1. java 人事_java版简易人事管理系统
  2. String与Date转换
  3. C# 系统应用之鼠标模拟技术及自动操作鼠标
  4. WD强势出击 推出全球业界首款2TB硬盘
  5. 一些Cloud for Customer的客户需求
  6. UNIX(进程间通信):04---孤儿进程
  7. C++之运算符重载(前置++和后置++)
  8. 2021 年 Java 开发者生产力报告
  9. 机器学习--决策树(熵、信息增益(ID3)、C4.5、多方式源码实战)
  10. ISO9000与ISO14000标准的不同点
  11. 神经网络系统辨识的特点,神经网络系统辨识程序
  12. python在线编辑文档-使用python编辑和读取word文档
  13. linux局域网互传文件(使用scp)
  14. go import几种用法
  15. 百合网推试爱机器人,人工智能+婚恋的起点?
  16. (四)Ps快速选择/魔棒
  17. 【QT项目】简易五子棋游戏(人机对战)— 完整源码
  18. 蓝桥杯 ALGO-1005 数字游戏
  19. 电脑接口自动测试软件,通过多种接口总线与计算机实现自动检定/校准测试系统的设计...
  20. FFmpeg 中的一些参数意义(tbr, tbn, tbc)

热门文章

  1. 全功能 Visual Studio 组件集 ComponentOne 2018V2发布,提供轻量级的 .NET BI 仪表板
  2. 百格活动精心评选最帅活动人特种兵,你上榜了吗?
  3. 中小型企业优选的免费OA品牌
  4. 行云管家V4.9正式发布:监控全面提升,首页、主机详情大幅优化,新增大量实用功能...
  5. 计算机博士英文复试自我介绍,博士复试英文自我介绍范文.doc
  6. 这是2021年个人所得税税率表
  7. MMR 算法信息收集
  8. LED灯珠恒流源控制芯片
  9. 卡尔曼滤波 预测与测量我们更应该相信谁?
  10. 设银行1年期定期存款年利率c语言,4.计算定期存款本利之和设银行定期存款的年......