Chinaunix首页 | 论坛 | 博客
  • 博客访问: 21698
  • 博文数量: 3
  • 博客积分: 95
  • 博客等级: 民兵
  • 技术积分: 52
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-21 21:32
文章分类

全部博文(3)

文章存档

2012年(3)

分类: LINUX

2012-10-16 22:33:41

今天同事问我一个问题. 模型是这样的集合A-集合B 用linux 怎么做.
集合A放在 data1 里边, 集合B 放在data2里边.
她开始的做法是 common -2 -3 data1 data2  看起来就是正常.
       -2     suppress column 2 (lines unique to FILE2)
       -3     suppress column 3 (lines that appear in both files)
-2:表示不输出第二列(只在FILE2中出现)
-3:表示不输出第三列(在FILE1 和FILE2 中都出现,就是 集合A和集合B的交集).
直接man comm 之后, 发现她发了一个简单的错误.
comm - compare two sorted files line by line
comm 要求文件必须是有序的. 建议她sort 一下之后,就得到她想要的结果.

这里在提供一种除了comm之外的去 集合A - 集合B的方法.
cat FILE1 FILE2 FILE2 | sort | uniq -u
原理很简单: FILE2 出现两次保证FILE2 中的元素肯定是重复的, 如果FILE1中的文件元素和FILE2同样的话
那么就会被 uniq -u 去除.
阅读(1725) | 评论(0) | 转发(0) |
0

上一篇:python SimpleHTTPServer具体应用

下一篇:没有了

给主人留下些什么吧!~~