一、交集

sort a.txt b.txt | uniq -d

二、并集

sort a.txt b.txt | uniq

三、差集

a.txt-b.txt:

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

b.txt-a.txt:

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

四、相关的解释

使用sort可以将文件进行排序(sort排序是为了管道交给uniq进行处理,uniq只能处理相邻的行),可以使用sort后面的参数,例如 -n 按照数字格式排序,例如 -i 忽略大小写,例如使用-r 为逆序输出等

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()@thatsit :: ~/scripts]# cat a.hosts
10.10.1.101
10.10.1.102
10.10.1.103
10.10.1.104
[root()@thatsit :: ~/scripts]#


# b.hosts

[root()@thatsit :: ~/scripts]# cat b.hosts
10.10.1.101
10.10.1.103
10.10.1.105
[root()@thatsit :: ~/scripts]#

# a.hosts ∩ b.hosts

[root()@thatsit :: ~/scripts]# sort a.hosts b.hosts | uniq -d
10.10.1.101
10.10.1.103
[root()@thatsit :: ~/scripts]# 

# a.hosts ∪ b.hosts

[root()@thatsit :: ~/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()@thatsit :: ~/scripts]#


# a.hosts - b.hosts

[root()@thatsit :: ~/scripts]# sort a.hosts b.hosts b.hosts | uniq -u
10.10.1.102
10.10.1.104
[root()@thatsit :: ~/scripts]#

# b.hosts - a.hosts

[root()@thatsit :: ~/scripts]# sort a.hosts a.hosts b.hosts | uniq -u
10.10.1.105
[root()@thatsit :: ~/scripts]#

参考链接:http://www.cnblogs.com/molong1208/p/5358509.html

最新文章

  1. 详解Node解析URL网址
  2. Math的三个将小数值舍入为整数方法
  3. canvas案例——画时钟
  4. java 27 - 7 反射之 通过反射越过泛型检查
  5. 导出 SQL SERVER 表中数据为脚本
  6. [HNOI2010]BOUNCE 弹飞绵羊
  7. HDOJ 1863 prim算法 HDOJ 1879
  8. Error:Could not determine Java version-- 关于Android Studio JDK设置和JVM version设置
  9. js+css实现模态层效果
  10. 浅谈Service Manager成为Android进程间通信(IPC)机制Binder守护进程之路
  11. 多线程的并发问题,lock用法
  12. 201521123039 《java程序设计》第一周学习总结(新)
  13. EasyUI实现购物车、菜单和窗口栏等最常用的用户界面功能
  14. Python第五章(北理国家精品课 嵩天等)
  15. jumpserver笔记
  16. Java中使用elasticsearch搜索引擎实现简单查询、修改等操作-已在项目中实际应用
  17. java.io.IOException: Could not delete path 'D:\mycode\reactnative\SecondTest\android\app\build\generated\source\r \release\android\support\v7
  18. lazarus的动态方法和虚拟方法
  19. JS将"\/Date(1530104033000)\/" 格式化
  20. AES加解密JS和php互相处理字符

热门文章

  1. BitAdminCore框架更新日志20180529
  2. JEECG(三) JEECG minidao如何封装自己的 多表联合查询 分页查询
  3. DevExpress WinForms Controls 学习系列1
  4. 4、Orcal数据库dmp文件导入
  5. fluentd 推送 mariadb audit log
  6. 指定nginx某个目录显示目录结构
  7. OS之进程管理---多处理器调度
  8. POJ 1095
  9. POJ 1014
  10. zabbix数据库表结构解析