linux命令(50):comm命令的用法,求交集
Linux comm命令
使用局限比较大,适用于特殊场合;
Linux comm命令用于比较两个已排过序的文件。
排序:sort -u file
这项指令会一列列地比较两个已排序文件的差异,并将其结果显示出来;
如果没有指定任何参数,则会把结果分成3行显示:
- 第1行仅是在第1个文件中出现过的列
- 第2行是仅在第2个文件中出现过的列
- 第3行则是在第1与第2个文件里都出现过的列
若给予的文件名称为"-",则comm指令会从标准输入设备读取数据。
语法
comm [-123][--help][--version][第1个文件][第2个文件]
参数:
- -1 不显示只在第1个文件里出现过的列。
- -2 不显示只在第2个文件里出现过的列。
- -3 不显示只在第1和第2个文件里出现过的列。
- --help 在线帮助。
- --version 显示版本信息。
实例
aaa.txt 与 bbb.txt 的文件内容如下:
[root@localhost text]# cat aaa.txt
aaa
bbb
ccc
ddd
eee
111
222
[root@localhost text]# cat bbb.txt
bbb
ccc
aaa
hhh
ttt
jjj
执行 comm 命令输出结果如下:
[root@localhost text]# comm aaa.txt bbb.txt
aaa
bbb
ccc
aaa
ddd
eee
111
222
hhh
ttt
jjj
第一列 第二列 第三列
输出的第一列只包含在aaa.txt中出现的行,第二列包含在bbb.txt中出现的行,第三列包含在aaa.txt和bbb.txt中相同的行。
具体实例讲解:
1、以下(A==file_1 and B==file_2)
2、选项:-12 == -21 -23==-32 -31==-13
组合使用一:输出只有一列
1、w@ubuntu:~/work/linshi$ cat aa_sort.txt
111
222
aaa
bbb
ccc
ddd
eee
2、w@ubuntu:~/work/linshi$ cat bb_sort.txt
aaa
bbb
ccc
hhh
jjj
ttt
3、comm -12 A B
表达意义:(AnB)
w@ubuntu:~/work/linshi$ comm -12 aa_sort.txt bb_sort.txt
aaa
bbb
ccc
4、comm -13 A B
表达意义:B-(AnB)
w@ubuntu:~/work/linshi$ comm -13 aa_sort.txt bb_sort.txt
hhh
jjj
ttt
5、comm -23 A B
表达意义:A-(AnB)
w@ubuntu:~/work/linshi$ comm -23 aa_sort.txt bb_sort.txt
111
222
ddd
eee
实质上:(comm -1) or (comm -2) or (comm -3),每个命令都会输出两列,两列的内容 等于如下表示:
各列是以制表符(\t)作为定界符。
6、comm -1 == comm -13 -12
w@ubuntu:~/work/linshi$ comm -1 aa_sort.txt bb_sort.txt
aaa
bbb
ccc
hhh
jjj
ttt
7、comm -2 == comm -23 -21
w@ubuntu:~/work/linshi$ comm -2 aa_sort.txt bb_sort.txt
111
222
aaa
bbb
ccc
ddd
eee
8、comm -3 == comm -32 -31
w@ubuntu:~/work/linshi$ comm -3 aa_sort.txt bb_sort.txt
111
222
ddd
eee
hhh
jjj
ttt
9、默认情况下:comm A B== -23 -13 -12
w@ubuntu:~/work/linshi$ comm aa_sort.txt bb_sort.txt
111
222
aaa
bbb
ccc
ddd
eee
hhh
jjj
ttt
linux命令(50):comm命令的用法,求交集的更多相关文章
- 每天一个linux命令(50)--date命令
在Linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的运算,熟练运用date 命令来表示自己想要表示的时间,肯定可以给自己的工作带来诸多方便. 1.命令格式: date [参 ...
- linux中comm命令用法
linux系统中comm命令用法详解 linux系统下的comm命令是一个非常实用的文件对比命令. comm命令功能: 选择或拒绝两个已排序的文件的公共的行. comm命令语法:comm [-12 ...
- 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@xue ...
- linux命令**50
1.ls命令 命令格式: ls [选项] [目录名] 命令功能: 列出目标目录中所有的子目录和文件. 常用参数: -a,列出所有文件包括隐藏文件 -l,列出详细信息,文件大小一般以字节大小显示 -h, ...
- Linux中常用的50个命令
1. [命令]:cat [功能说明]: concatenate files and print on the standard output #连接文件并打印到标准输出,有标准输出的都可以用重定向定向 ...
- Linux常用的50个命令
50个最常用的Unix/Linux命令 2014-08-20 这篇文章翻译自http://www.thegeekstuff.com/2010/11/50-linux-commands/这些都是一些很常 ...
- linux:使用comm命令比较两个文件:交集、差
linux:使用comm命令比较两个文件:交集.差 comm命令可以按行比较两个排序好的文件,输出有3列:第一列是file1独有的.第二列是file2独有的,第三列是两者都有的,简单语法如下:NAME ...
- linux 命令之comm
1. 简介 comm命令可以用于两个文件之间的比较,它有一些选项可以用来调整输出,以便执行交集.求差.以及差集操作. 交集:打印出两个文件所共有的行. 求差:打印出指定文件所包含的且不相同的行. 差集 ...
- linux useradd(adduser)命令参数及用法详解(linux创建新用户命令)
linux useradd(adduser)命令参数及用法详解(linux创建新用户命令) useradd可用来建立用户帐号.帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号 ...
随机推荐
- Map遍历的几种方法
查看Map自带API map遍历方法: public static void main(String[] args) { Map<Integer,String> map = new Has ...
- 大家所说的full-stack框架到底是指什么?
轻量级框架: 整合层 guice ORM层 nutz, guzz 表示层 -- None -- JSF Spring MVC ...
- 使用安全rm
rm命令像一把刀子一样,玩不好会伤到自己.不要觉得自己头脑清醒,人总有犯迷糊的时候. 在.bashrc中设置PATH=/home/me/bin/:$PATH 在自己的bin目录下,添加rm脚本mv - ...
- ACM经验分享[转]
明确规则 规则:以最少的时间过题 (这意味着0ms与1000ms是一样的) 了解规则,善用规则 虽然这个题我不会但是AC是没有问题的 --ACRush 大力出奇迹 学会对拍数据,准备好对拍脚本:测试很 ...
- c语言之函数参数传递之数组篇(转)
在VC中写程序都习惯了,一般数组作为函数实参时,最常用的方法就是引用和指针的方法,但是到C语言中就没有引用了,还有一种比较常用的方法: #include <stdio.h>void sor ...
- HDU 4648 Magic Pen 6 (。。。。。。。。。。)
Magic Pen 6 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total ...
- HDU 2208 唉,可爱的小朋友(DFS)
唉,可爱的小朋友 Time Limit: 10000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
- System.ComponentModel.DataAnnotations.Schema 冲突
System.ComponentModel.DataAnnotations.Schema 冲突 Entity Framework 与 .net4.5 的 System.ComponentModel.D ...
- formValidator输入验证、异步验证实例 + licenseImage验证码插件实例应用
实例技术:springmvc 实现功能:完整用户登录流程.输入信息规则校验.验证码异步校验. 功能清单: 1.springmvc控制器处理get请求(/member/login.html),进行静态页 ...
- MVC+Spring.NET+NHibernate .NET SSH框架整合 C# 委托异步 和 async /await 两种实现的异步 如何消除点击按钮时周围出现的白线? Linq中 AsQueryable(), AsEnumerable()和ToList()的区别和用法
MVC+Spring.NET+NHibernate .NET SSH框架整合 在JAVA中,SSH框架可谓是无人不晓,就和.NET中的MVC框架一样普及.作为一个初学者,可以感受到.NET出了MV ...