zoukankan      html  css  js  c++  java
  • Linux 取两个文件的交集、差集、并集

    一、交集

    sort a.txt b.txt | uniq -d   (-d仅显示重复的行列)

    二、并集

    sort a.txt b.txt | uniq

    三、差集

    sort a.txt b.txt | uniq -u   (-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.txt
    [root@ scripts]# cat a.txt
    10.10.1.101
    10.10.1.102
    10.10.1.103
    10.10.1.104
    
    b.txt
    [root@ scripts]# cat b.txt
    10.10.1.101
    10.10.1.103
    10.10.1.105
    
    交集:
    [root@ scripts]# sort a.txt b.txt | uniq -d
    10.10.1.101
    10.10.1.103
    
    并集:
    [root@ scripts]# sort a.txt b.txt | uniq
    10.10.1.101
    10.10.1.102
    10.10.1.103
    10.10.1.104
    10.10.1.105
    
    差集:
    [root@ scripts]# sort a.txt b.txt | uniq -u
    10.10.1.102
    10.10.1.104
    10.10.1.105
    
    详解:参数-u表示的是输出出现次数为1的内容,b.txt的内容至少出现两次,即是a.txt-b.txt差集:
    [root@ scripts]# sort a.txt b.txt b.txt| uniq -u
    10.10.1.102
    10.10.1.104
    
    详解:参数-u表示的是输出出现次数为1的内容,a.txt的内容至少出现两次,即是b.txt-a.txt差集:
    [root@ scripts]# sort a.txt a.txt b.txt| uniq -u
    10.10.1.105
  • 相关阅读:
    用于主题检测的临时日志(594fb726-af0b-400d-b647-8b1d1b477d72
    返璞归真vc++之字符类型
    DIV居中
    程序员职业生涯
    枚举进程句柄
    不使用mutex设计模式解决并发访问cache
    服务器权重分配算法
    xmemecached中的一致性hash算法
    安卓课堂练习
    pythonPTA---分支循环与集合7-1 jmu-python-韩信点兵 (20分) 7-2 打印数字矩形 (10分) 7-3 成绩统计 (10分) 7-4 找列表中最大元素的下标 7-5 删除列表中的重复值
  • 原文地址:https://www.cnblogs.com/hankyoon/p/15262399.html
Copyright © 2011-2022 走看看