结合情景学习linux命令之comm



结合情景学习linux命令之comm
 
今天同事问我一个问题. 模型是这样的集合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 之后, 发现她发了一个简单的错误. 
  www.2cto.com  
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 去除. 
 

相关内容

    暂无相关文章