Linux文件比较,文本文件的交集、差集与求差

comm命令

comm命令可以用于两个文件之间的比较,它有一些选项可以用来调整输出,以便执行交集、求差、以及差集操作。
•交集:打印出两个文件所共有的行。
•求差:打印出指定文件所包含的且不相同的行。
•差集:打印出包含在一个文件中,但不包含在其他指定文件中的行。
[[email protected] text]# cat aaa.txt
aaa
bbb
ccc
ddd
eee
111
222
[[email protected] text]# cat bbb.txt
bbb
ccc
aaa
hhh
ttt
jjj
[[email protected] 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中相同的行。各列是以制表符(\t)作为定界符。

格式化输出选项:
•-1:从输出中删除第一列
•-2:从输出中删除第二列
•-3:从输出中删除第三列

交集

打印两个文件的交集,需要删除第一列和第二列:
[[email protected] text]# comm aaa.txt bbb.txt -1 -2
bbb
ccc

求差

打印出两个文件中不相同的行,需要删除第三列:
[[email protected] text]# comm aaa.txt bbb.txt -3 | sed ‘s/^\t//‘
aaa
aaa
ddd
eee
111
222
hhh
ttt
jjj

sed ‘s/^\t//‘ 是将制表符(\t)删除,以便把两列合并成一列。

差集

通过删除不需要的列,可以得到aaa.txt和bbb.txt的差集:

aaa.txt的差集
[[email protected] text]# comm aaa.txt bbb.txt -2 -3
aaa
ddd
eee
111
222

bbb.txt的差集
[[email protected] text]# comm aaa.txt bbb.txt -1 -3
aaa
hhh
ttt
jjj

时间: 2024-10-03 20:06:27

Linux文件比较,文本文件的交集、差集与求差的相关文章

第二十二章 Linux文件比较,文本文件的交集、差集与求差:comm命令

第二十二章 Linux文件比较,文本文件的交集.差集与求差:comm命令 名词解释 comm 命令 可以用于两个文件之间的比较,它有一些选项可以用来调整输出,以便执行交集.求差.差集操作. 交集:打印两个文件所共有的行 求差:打印出指定文件所包含的其不相同的行. 差集:打印出包含在一个文件中,但不包含在其他指定文件中的行. 语法 comm(选项)(参数) 选项 -1 :不显示在第一个文件出现的内容: -2 :不显示在第二个文件中出现的内容: -3 :不显示同时在两个文件中都出现的内容. ? 参数

linux_coom _ Linux文件比较,文本文件的交集、差集与求差

交集和差集操作在集合论相关的数学课上经常用到,不过,在Linux下 对文本进行类似的操作在某些情况下也很有用. comm命令 comm命令可以用于两个文件之间的 比较,它有一些选项可以用来调整输出,以便执行交集.求差.以及差集操作. 交集:打印出两个文件所共有的行. 求差:打印出指定文件所包含的且不相同的行. 差集:打印出包含在一个文件中,但不包含在其他指定文件中的行. [[email protected] text]# cat aaa.txt aaabbbcccdddeee111222 [[e

Linux 求文件交集 差集等

使用comm命令 假设两个文件FILE1和FILE2用集合A和B表示,FILE1内容如下: a b c e d a FILE2内容如下: c d a c 基本上有两个方法,一个是comm命令,一个是grep命令.分别介绍如下: comm命令 , Compare sorted files FILE1 and FILE2 line by line. With  no options, produce three-column output.  Column one contains lines un

linux ---用uniq实现文件的并集和交集

1. 取出两个文件的并集(重复的行只保留一份) 2. 取出两个文件的交集(只留下同时存在于两个文件中的文件) 3. 删除交集,留下其他的行 1. cat file1 file2 | sort | uniq 2. cat file1 file2 | sort | uniq -d 3. cat file1 file2 | sort | uniq -u – c 显示输出中,在每行行首加上本行在文件中出现的次数.它可取代- u和- d选项. – d 只显示重复行. – u 只显示文件中不重复的各行. –

利用sort和uniq求两个文件的并集,交集和差集

利用sort和uniq求两个文件的并集,交集和差集 并集:cat file1.txt file2.txt | sort | uniq > file.txt 交集:cat file1.txt file2.txt | sort | uniq -d >file.txt 差集:求file1.txt相对于file2.txt的差集,可先求出两者的交集file3.txt,然后在file1.txt中除去file3.txt即可. cat file1.txt file2.txt | sort | uniq -d

linux文件层级、目录、文件基本操作介绍

1.文件层级FHS介绍: Filesystem Hierarchy Standard(文件系统层次化标准)的缩写,多数Linux版本采用这种文件组织形式,类似于Windows操作系统中c盘的文件目录,FHS采用树形结构组织文件. FHS定义了系统中每个区域的用途.所需要的最小构成的文件和目录,同时还给出了例外处理与矛盾处理. /:linux文件系统根目录 /bin:供所有用户使用的基本命令文件 /sbin:供系统管理员使用的工具程序文件 /lib:供/bin和/sbin程序调用的库文件程序,及系

Linux文件权限与目录管理

Linux文件系统的三种身份 文件所有者 同组用户 同一个用户组的用户可以访问该用户组的文件: 每个账号可以加入多个用户组. 在同一个用户组的文件也可以设置不同的权限,可以不让本组用户查看. 其他人 除了文件主.同组用户以外的人就是其他人. PS: /etc/passwd 记录所有用户的账号 /etc/shadow 记录所有用户的密码 /etc/group 记录所有的组名 文件属性 ls -al 显示所有的文件名和相关属性(包括以.开头的隐藏文件) total 72 drwxr-xr-x+ 28

修改linux文件权限命令

修改linux文件权限命令:chmod Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作.可执行权限表示允许将该文件作为一个程序执行.文件被创建时,文件所有者自动拥有对该文件的读.写和可执行权限,以便于对文件的阅读和修改.用户也可根据需要把访问权限设置为需要的任何组合. 有三种不同类型的用户可对文件或目录进行访问:文件所有者

#Linux学习笔记# Linux文件的属性以及权限说明

1. Linux文件的属性 关于Linux文件的属性的说明和设置请参考鸟叔Linux私房菜:Linux 的文件权限与目录配置 2. 目录和文件的权限意义 在Linux系统中,每个文件都有三种身份的权限配置,而每个身份都有三种权限(rwx).这三种权限对于普通的文件很好理解,如下表所示, 表格 1 普通文件的rwx权限位意义 权限 说明 r 文件内容可读 w 文件内容可修改 x 文件可执行 在Window系统中,文件是否可执行是通过文件扩展名来进行识别,例如.exe或.bat等.而在Linux系统