shell/bash 交集、並集、差集
方法一(直接用檔名):取兩個文字檔案的並集、交集、差集
並:
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)差集時注意輸入檔案的順序
相關推薦
shell/bash 交集、並集、差集
方法一(直接用檔名):取兩個文字檔案的並集、交集、差集並: sort -m <(sort file1 | uniq) <(sort file2 | uniq) | uniq 交: sort -m <(sort file1 | uniq) <(
用順序表求集合的交集、並集和差集
使用順序表時, 需要定義一個數組來儲存順序表中的所有元素和定義一個整型變數來儲存順序表的長度。假定陣列用data[MaxSize]表示,長度整型變數用length表示,並採用結構體型別表示,元素型別採用通用型別識別符號ElemType,則順序表的儲存結構定義
Linux shell計算兩個檔案的交集 並集和差集
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
C# 對List取交集、連集及差集
轉載於:http://www.cnblogs.com/shuibin/archive/2012/04/19/2457867.html 最近在專案中,剛好遇到這個需求, 需要比對兩個List,進行一些交集等操作, 在以前我們可能需要寫很多行來完成這些動作, 但現在我
python 兩個list 求交集,並集,差集
pytho 列表解析 int __main__ class clas etc intersect run def diff(listA,listB): #求交集的兩種方式 retA = [i for i in listA if i in listB]
python兩個 list 獲取交集,並集,差集的方法
交集 spa 兩個 方法 val inter tmp for col 1. 獲取兩個list 的交集 #方法一: a=[2,3,4,5] b=[2,5,8] tmp = [val for val in a if val in b] print tmp #[2, 5] #
python 求列表的交集,並集,差集
#coding=utf-8 def foo(list1,list2): #求交集 ret1 = [i for i in list1 if i in list2] ret2 = list(set(list1).intersection(set(lis
Java中使用Set進行並集,差集,交集查詢
利用Java中使用Set進行並集,差集,交集查詢 首先命名一個類名為DealSet存放查詢並集,差集,交集的方法 DealSet.java package SetLearning; import java.util.HashSet; import java.util.Set; p
[Python]集合的交集,並集,差集
前提:測試中需要給某些應用設定黑名單,所以從.txt檔案中求兩者的差集,就可以篩選出需要測試的應用 思路:將.txt檔案中的資料讀到列表中,求列表的集合,再輸出到指定目錄 集合的思路: a = [1,2,3,4,5,6] b = [5,6,7] c = [] ①交集 c = [i for i i
求A,B陣列的交集,並集和差集
注意函式自身是否有元素重複的判斷,還有要把switch函式放在最後面,小細節。 還有一個小細節就是函式呼叫直接寫,前面不要在加cout; cout>>chaji(a,b,n);就會在結尾多出來一個數,為迴圈次數。 #include<iostream&
JS陣列操作:去重,交集,並集,差集
var aHasNaN = a.some(function(v){ return isNaN(v) }) var bHasNaN = b.some(function(v){ return isNaN(v) }) // 並集 var union = a.concat(b.filter(function(v)
求兩個list的交集,並集,差集。
1. 獲取兩個list 的交集 1 2 3 4 5 6 7 8 9 #方法一: a=[2,3,4,5] b=[2,5,8] tmp = [val for
java 對兩個list進行“交集,並集,差集,去重複並集”的操作
@Test public void testTwoList(){ List<String> a = new ArrayList<String>(); List<
mysql中交集,並集,差集,左連線,右連線
學習mysql也有一個月啦,在這個月中,都是按照需求對資料表進行一些基本操作,在這個過程當中,經常使用到左連線,右連線,交集,取差集等,現在對其基本操作進行歸納總結。 資料來源: 表一:
iOS 陣列集合操作(交集,並集,差集,子集)
NSArray *array1 = @[@"1",@"2",@"3"]; NSArray *array2 = @[@"1",@"5",@"6"]; NSMutableSet *set1 = [NSMutableSet setWithArray:array1]; NSMutableSet *set2 = [
LeetCode : Intersection of Two Arrays II 兩個向量去重問題 求交集,並集,差集
std :: set_intersection 兩個排序範圍的交叉點(交集) 構造一個從result指向的位置開始的排序範圍,其中包含兩個已排序範圍 [ first1,last1 ) 和 [ first2,last2)的集合交集。 兩組的交集僅由兩組
關於如何獲取兩個列表的交集,並集,差集,分享一個簡單高效的方法
lt1=[1,3,5,7,9] lt2=[1,5,7,6,4] #交集 print(list(set(a).intersection(set(b)))) #並集 print(list(set(a).union(set(b)))) #相當於是吧兩列表相加然後轉集合去重在轉列表 lt3=lt
求List,Map,Set的交集,並集與差集
應用場景 在大資料的背景下,我們在做專案的時候往往使用單表在資料庫中查詢資料,然後多表在service層進行關聯操作。比如說下面的情況就是如此,在這裡我並不是展開講多表之間如何實現解耦的單表查詢操作,我只是針對其中的涉及多表關聯的集合操作進行講解
兩個集合的交集,並集,差集如何計算
string[] arr1 = { "445345", "fsdfsdf", "423423", "123" }; string[] arr2 = { "123", "Fsdfs
linux 計算檔案交集,並集,差集
並集 計算並集最簡單 sort -u a.txt b.txt 使用 -u 引數去掉重複的行即可 交集 grep -f a.txt b.txt | sort | uniq 差集 a - b(a,b均為檔案) grep -v -f b a b - a g