`
haiming.wang
  • 浏览: 18821 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

利用linux命令sort和uniq求两个文件的交集并集和补集

 
阅读更多

给定两个文件 a.txt 和 b.txt ,每行是一个记录(假设没有重复),要求输出两集合的交集、并集、差集,输出的结果只包括唯一项。交集定义为同时出现在两个文件中的记录项,并集定义为出现在任何一个文件中的记录项,差集(A-B)定义为出现在A中而且不出现在B中的记录,对称差集定义为只出现在一个文件中的记录。


假设 a.txt 包括 a, c, b 三行。假设 b.txt 包括 d, e, c, b 四行。

交集,把两个文件放到一起排序,只输出次数多于一次的项:
$ sort a.txt b.txt | uniq -d
b
c

并集,把两个文件放到一起排序,重复的项只算一次:
$ sort a.txt b.txt | uniq
a
b
c
d
e

差集(A-B),把B的元素重复2份和A的元素放到一起排序,只输出出现一次的项:
$ sort a.txt b.txt b.txt | uniq -u
a

对称差,把两个文件放到一起排序,只输出出现一次的项:
$ sort a.txt b.txt | uniq -u
a
d
e

分享到:
评论

相关推荐

    linux下uniq和sort命令用法详解.docx

    Linux 下 uniq 和 sort 命令用法详解 uniq 命令是 Linux 中的一个文本处理命令,用于去除文本中的重复行。该命令读取输入文件,并比较相邻的行。在正常情况下,第二个及以后更多个重复行将被删去,行比较是根据所用...

    linux下uniq和sort命令用法.docx

    Linux 下 uniq 和 sort 命令用法 uniq 命令是 Linux 中的一个文本处理命令,用于删除或显示文本文件中的重复行。它可以读取输入文件,并比较相邻的行。在正常情况下,第二个及以后更多个重复行将被删去,行比较是...

    Linux命令 sort、uniq、tr工具详解

    `sort`、`uniq`和`tr`就是其中三个非常实用的文本处理工具,它们分别用于对文本文件内容进行排序、去除重复行以及转换字符。 首先,让我们详细了解`sort`命令。`sort`的主要功能是对文本文件的行进行排序。它支持...

    linux sort join cut paste split uniq

    `sort`、`join`、`cut`、`paste`、`split`和`uniq`是Linux命令行中的一组强大工具,它们专门用于对文本文件进行排序、合并、切割、拼接、分割和去重等操作。下面将详细讲解这些工具的使用方法和应用场景。 1. `sort...

    uniq命令 去除文件中的重复行

    我们应当注意的是,它和sort的区别,sort只要有重复行,它就去除,而uniq重复行必须要连续,也可以用它忽略文件中的重复行。 语法格式:uniq [参数] [文件] 常用参数: -c 打印每行在文本中重复出现的次数 -d ...

    linux使用lsof命令查看文件打开情况

    `lsof`(list open files)命令是一个非常实用的工具,它能够显示系统中所有打开的文件和对应的进程信息。本文将深入探讨`lsof`命令的使用方法及其在不同场景下的应用。 ### 前言 在Linux环境下,一切资源都被抽象为...

    windows下的uniq

    `uniq`命令在Unix/Linux中是一个非常常见的文本处理工具,它用于过滤出连续重复的行,通常与`sort`命令结合使用,因为`uniq`只对连续的重复行进行处理。在Windows环境下,如果没有内置的`uniq`命令,可以寻找替代品...

    Shell中的sort和uniq命令

    在Linux Shell环境中,`sort` 和 `uniq` 是两个非常实用的命令,它们主要用于文本文件的数据处理。`sort` 命令用于对文件内容进行排序,而 `uniq` 命令则用于去除文件中连续重复的行,或者显示只出现一次或多次的行...

    Linux sort,uniq,cut,wc命令详解

    如果 File 参数指定多个文件,那么 sort 命令将这些文件连接起来,并当作一个文件进行排序。  sort语法  [root@www~]# sort [-fbMnrtuk] [file or stdin]  选项与参数:  -f :忽略大小写的差异,例如 A 与...

    Linux文本处理命令合集

    - **diff** 命令用于比较两个文件之间的不同之处。 - `diff version1.txt version2.txt`:简单地列出两个文件之间的不同行。 - `diff -u version1.txt version2.txt > version.patch`:输出更为详细的差异信息,并...

    Linux命令学习+Linux标准文本处理命令

    - `join`(合并两个文件的指定列) - `tr`(字符替换和转换) ### 3. 特殊命令与技巧 #### 管道和重定向 - **管道** (`|`):将一个命令的输出作为另一个命令的输入。 - **重定向** (`>` 和 `>>`):将命令的输出...

    Linux命令详解手册

    Linux命令详解手册是一本适合Linux新手和有一定基础的用户深入学习Linux命令的指南。它详细介绍了大量的Linux命令,涵盖了系统管理、系统设置、文档编辑以及压缩备份等多个方面的操作。掌握这些命令对于理解和使用...

    Linux命令大全(CHM格式离线版)

    Linux命令大全(CHM格式离线版) Linux命令大全(修改版) 进行重新编译的说明 文件传输 bye ftp ftpcount ftpshut ftpwho ncftp tftp uucico uucp uupick uuto 备份压缩 ar bunzip2 bzip2 bzip2recover compress cpio ...

    Linux操作命令八.doc

    Linux 操作命令是 Linux 操作系统中不可或缺的部分,本文将介绍 Linux 操作命令中的 sort、uniq 和 join 命令的用法。 一、sort 命令 sort 命令是 Linux 中一个非常有用的命令,它能够对文本文件和 stdin 进行排序...

    LINUX处理文本命令

    处理文本和文本文件的命令 一. sort 文件排序, 通常用在管道中当过滤器来使用. 这个命令可以依据指定的关键字或指定的字符位置, 对文件行进行排序. 使用-m选项, 它将会合并预排序的输入文件. 想了解这个命令的全部...

    Linux命令集 Linux命令集,可供参考和学习,希望对你有所帮助!

    ### Linux命令集详解 Linux作为一个强大的开源操作系统,其命令行界面是进行系统管理和日常操作的重要方式。对于初学者和专业人士而言,熟练掌握一系列核心命令至关重要。以下是对标题、描述、标签以及部分内容中...

    Linux命令详解手册.pdf

    文档编辑命令部分提供了众多用于处理文本文件的命令,如col、comm、csplit、ed、egrep、ex、fgrep、fmt、fold、grep、ispell、jed、joe、mtype、pico、sed、sort、spell、tr、uniq、wc等。这些工具支持从基本的文本...

    Linux命令手册

    Linux命令手册是Linux用户不可或缺的参考资料,尤其对于初学者和经验丰富的系统管理员来说,它能够提供快速查询命令用法的能力。手册涵盖的内容广泛,包括文件目录管理、文档编辑和文件传输等多个方面。在此,我将...

Global site tag (gtag.js) - Google Analytics