Linux comm命令求出文件的交集、差集
A(1,2,3)和B(3,4,5),A和B的交集是3,A对B的差集是1和2,B对A的差集是4和5,A和B求差的结果是1、2、4、5。
在Linux中可以使用comm命令求出这些集。
[root@xuexi tmp]# cat <<eof>set1.txt
> orange
> gold
> apple
> sliver
> steel
> iron
> eof
[root@xuexi tmp]# cat <<eof>set2.txt
> orange
> gold
> cookiee
> carrot
> eof
使用comm命令。
[root@xuexi tmp]# comm set1.txt set2.txt
apple
orange
comm: file is not in sorted order
comm: file is not in sorted order
gold
cookiee
carrot
silver
steel
iron
提示没有排序,所以comm必须要保证比较的文件是有序的。
[root@xuexi tmp]# sort set1.txt -o set1.txt;sort set2.txt -o set2.txt
[root@xuexi tmp]# comm set1.txt set2.txt
apple
carrot
cookiee
gold
iron
orange
silver
steel
结果中输出了3列,每一列使用制表符\t隔开。第一列是set1.txt中有而set2.txt中没有的,第二列则是set2.txt中有而set1.txt中没有的,第三列是set1.txt和set2.txt中都有的。
根据这三列就可以求出交集、差集和求差。
交集就是第三列。使用-1和-2分别删除第一第二列就是第三列的结果。
[root@xuexi tmp]# comm set1.txt set2.txt - -
gold
orange
A对B的差集就是第一列,B对A的差集就是第二列。
[root@xuexi tmp]# comm set1.txt set2.txt - - # A对B的差集
apple
iron
silver
steel
[root@xuexi tmp]# comm set1.txt set2.txt - - # B对A的差集
carrot
cookiee
A和B的求差就是第一列和第二列的组合。
[root@xuexi tmp]# comm set1.txt set2.txt -
apple
carrot
cookiee
iron
silver
steel
但是这样分两列的结果不方便查看,应该进行处理使它们显示在同一列上。
[root@xuexi tmp]# comm set1.txt set2.txt - | tr "\t" "\0"
apple
carrot
cookiee
iron
silver
steel
Linux comm命令求出文件的交集、差集的更多相关文章
- Linux ln命令:在文件之间建立链接(硬链接和软链接)详解版1
Linux ln命令:在文件之间建立链接(硬链接和软链接)详解版 < Linux创建文件及修改文件时间戳(touch命令)Linux复制文件和目录(cp命令) > <Linux就该这 ...
- 如何将Linux rm命令删除的文件放入垃圾箱
因为rm命令删除的文件是不会放入垃圾箱的,所以无法恢复,下面小编就给大家介绍一种方法,通过替换Linux rm命令的方法,从而将rm命令删除的文件放入垃圾箱. 方法: 1. 在/home/userna ...
- Linux— file命令 用于辨识文件类型
Linux file命令用于辨识文件类型. 通过file指令,我们得以辨识该文件的类型. 语法 file [-bcLvz][-f <名称文件>][-m <魔法数字文件>...] ...
- 原!linux comm命令文件 比较 输出交集,差集。
文件内容大致如下: 112805|300011222483|OL海12卓|47397c33e36cdbed26637c50dd305973|2019-08-06 10:50:13|登B录123|suc ...
- Linux常用命令01(文件和目录)
目标 查看目录内容 ls 切换目录 cd 创建和删除文件 touch rm mkdir 拷贝和移动文件 cp mv 查看文件内容 cat more grep 其他 echo 重定向 > 和 &g ...
- linux常用命令之查阅文件
CAT cat – concatenate print files 连续的输出文件内容 用法 cat [-nbA] file 选项 -n line number 输出行号 -b line number ...
- Linux常用命令_(文件权限)
Linux权限管理: 二.权限管理1.3种基本权限在Linux中,将使用系统资源的人员分为4类:超级用户.文件或目录的属主.属主的同组人和其他人员.超级用户拥有对Linux系统一切操作权限,对 于其他 ...
- Linux常用命令学习2---(文件搜索命令locate find、命令搜索命令whereis which、字符串搜索命令grep、帮助命令man)
1.文件搜索命令:locate [文件名] 在后台数据库中按文件名搜索,搜索速度比find快,耗费资源更少 例子:locate test.txt,就会显示文件名包含 test.txt的所 ...
- linux常用命令:创建文件和文件夹
1.首先说一下touch 创建文件的命令,touch可以用于创建二进制文件,用法非常简单.用法:touch+文件名,touch与文件名之间一定要有空格.图中先用之前分享过的命令来查看一下/目录下面有多 ...
随机推荐
- 第44章:MongoDB-集群--Sharding(分片)--分片的片键选择
①片键选择的重要性 所谓片键,就是用来拆分数据的字段,通常为1-2个字段,由于片键一旦确定,并已经分片过后,基本上就不可能再修改片键了,因此初期设计和选择就非常重要了 ②片键规则 1:不可以是数组 2 ...
- Nginx 教程(2):性能
tcp_nodelay, tcp_nopush 和 sendfile tcp_nodelay 在 TCP 发展早期,工程师需要面对流量冲突和堵塞的问题,其中涌现了大批的解决方案,其中之一是由 John ...
- unity 的一些API-01
public static float GetAxis(string axisName); 看下原话解释: Returns the value of the virtual axis identifi ...
- 《JavaScript 高级程序设计》读书笔记一 简介
一 历史 二 实现 a. javascript三个部分: ECMAScript:由ECMA-262定义,提供核心语言功能: DOM:提供HTML的应用程序编程接口/提供访问和操作网页内容的方法 ...
- libgdx学习记录3——动画Animation
libgdx动画采用Animation实现,即通过帧动画实现. 代码如下: package com.fxb.newtest; import com.badlogic.gdx.ApplicationAd ...
- jvm的垃圾回收和内存
垃圾回收: 对象的创建是我们程序员主导的,但是却没有与之相对应的delete方法来删除我们用完的对象,释放这些我们已经不需要再使用的对象的内存空间,gc:垃圾回收机制:指的就是JVM自带的一种释放无用 ...
- JavaScript之DOM创建节点
上几篇文章中我们罗列了一些获取HTML页面DOM对象的方法,当我们获取到了这些对象之后,下一步将对这些对象进行更改,在适当的时候进行对象各属性的修改就形成了我们平时看到的动态效果.具体js中可以修改D ...
- Spring依赖注入(DI)详解
一.依赖简介 一个典型的企业应用程序不是由一个单一的对象组成(或Spring的说法中的bean).即使是最简单的应用程序也只有几个对象一起工作来呈现最终用户看作是一个连贯的应用程序.如何从定义许多独立 ...
- Javascript高级编程学习笔记(47)—— 元素遍历
元素遍历 为了方便我们使用JS来遍历文档中的元素,W3C在原来的基础之上提出了 Element Traversal 规范 这一规范主要就是为了统一浏览器对文档中节点解析不一致的问题. 比如在某些浏览器 ...
- Kali学习笔记32:Maltego、Exiftool
有段时间没学Kali里面的工具了 以前做信息收集的时候呢,忘记了两个很强大的工具:Maltego.Exiftool 先来看看Maltego: 这个工具不仅可以方便地收集DNS信息等等,强大地地方还在于 ...