linux操作指令
(1)比较两个文件的2.txt比1.txt文件多了什么
grep -vFf 1.txt 2.txt > difff.txt
(2)两个文件的交集差集并集
交集:两个文件中都出现的行
并集:两个文件中的所有行加起来,去掉重复
差集:在一个文件中存在,而在另一个文件中不存在。
比如以下两个文件:
a.txt
aaa
bbb
ccc
111
222
b.txt
ccc
ddd
eee
111
333
结果:
a.txt和b.txt的交集:
ccc
111
a.txt和b.txt的并集:
111
222
333
aaa
bbb
ccc
ddd
eee
a.txt中存在b.txt中不存在:
222
aaa
bbb
b.txt中存在a.txt中不存在:
333
ddd
eee
· 正 · 文 · 来 · 啦 ·
方法一:sort+uniq
sort:用于将文本文件内容加以排序
uniq:删除文件中重复的行,得到文件中唯一的行
交集
sort a.txt b.txt | uniq -d
(用sort将a.txt b.txt文件进行排序,uniq使得两个文件中的行唯一,使用-d输出两个文件中次数大于1的内容,即是得到交集)
并集
sort a.txt b.txt | uniq
(将a.txt b.txt文件进行排序,uniq使得两个文件中的内容为唯一的,即可得到两个文件的并集)
差集
a.txt-b.txt:
sort a.txt b.txt b.txt | uniq -u
(将两个文件排序,最后输出a.txt b.txt b.txt文件中只出现过一次的内容,因为有两个b.txt所以只会输出只在a.txt出现过一次的内容,即是a.txt-b.txt差集)
b.txt-a.txt:
sort b.txt a.txt a.txt | uniq -u
(同a.txt-b.txt:)
uniq参数说明:
-d 仅显示重复出现的行列;
-u 仅显示出一次的行列。
source:https://cloud.tencent.com/developer/article/1613208