Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1827421
  • 博文数量: 636
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 3950
  • 用 户 组: 普通用户
  • 注册时间: 2014-08-06 21:58
个人简介

博客是我工作的好帮手,遇到困难就来博客找资料

文章分类

全部博文(636)

文章存档

2024年(5)

2022年(2)

2021年(4)

2020年(40)

2019年(4)

2018年(78)

2017年(213)

2016年(41)

2015年(183)

2014年(66)

我的朋友

分类: 系统运维

2016-11-15 16:01:32

方法一(直接用文件名):取两个文本文件的并集、交集、差集
并:




sort -m <(sort file1 | uniq) <(sort file2 | uniq) | uniq



交:




sort -m <(sort file1 | uniq) <(sort file2 | uniq) | uniq -d




差 file1 - file2:




sort -m <(sort file1 | uniq) <(sort file2 | uniq) <(sort file2 | uniq) | uniq -u










方法二(用变量参数):取两个文本文件的并集、交集、差集


file1=XXXX


file2=YYYY




# 并:




sort -m <(sort $file1 | uniq) <(sort $file2 | uniq) | uniq




# 交:




sort -m <(sort $file1 | uniq) <(sort $file2 | uniq) | uniq -d




# 差 file1 - file2:




sort -m <(sort $file1 | uniq) <(sort $file2 | uniq) <(sort $file2 | uniq) | uniq -u






方法三:


file1=XXXX


file2=YYYY


# 并:


cat $file1 $file2 | sort | uniq


# 交:


cat $file1 $file2 | sort | uniq -d










备注:


uniq -d 会输出重复行


uniq -u 只显示唯一的行






grep命令


grep命令是常用来搜索文本内容的,根据输入的pattern,输出命中的内容。可以利用它的文件输入pattern特性,来求两个文件的交集。







c
d
e
那差集可以利用-v这个参数,例如:


$ grep -F -v -f a.file b.file
f
g


$ grep -F -v -f b.file a.file
a
b
其中第一个命令求B-A,第二个命令求A-B


注意:


1)grep求交集不要求输入文件是排序的,但最好是唯一的






2)差集时注意输入文件的顺序

阅读(2287) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~