bash技巧:求集合的交集、並集、差集、對稱差集
網上轉的,不錯,比使用awk容易點
給定兩個檔案 a.txt 和 b.txt ,每行是一個記錄(假設沒有重複),要求輸出兩集合的交集、並集、差集,輸出的結果只包括唯一項。交集定義為同時出現在兩個檔案中的記錄項,並集定義為出現在任何一個檔案中的記錄項,差集(A-B)定義為出現在A中而且不出現在B中的記錄,對稱差集定義為只出現在一個檔案中的記錄。
假設 a.txt 包括 a, c, b 三行。假設 b.txt 包括 d, e, c, b 四行。
交集,把兩個檔案放到一起排序,只輸出次數多於一次的項:
$ sort a.txt b.txt | uniq -d
b
c
並集,把兩個檔案放到一起排序,重複的項只算一次:
$ sort a.txt b.txt | uniq
a
b
c
d
e
差集(A-B),把B的元素重複2份和A的元素放到一起排序,只輸出出現一次的項:
$ sort a.txt b.txt b.txt | uniq -u
a
對稱差,把兩個檔案放到一起排序,只輸出出現一次的項:
$ sort a.txt b.txt | uniq -u
a
d
e
相關推薦
bash技巧:求集合的交集、並集、差集、對稱差集
網上轉的,不錯,比使用awk容易點 給定兩個檔案 a.txt 和 b.txt ,每行是一個記錄(假設沒有重複),要求輸出兩集合的交集、並集、差集,輸出的結果只包括唯一項。交集定義為同時出現在兩個檔案中的記錄項,並集定義為出現在任何一個檔案中的記錄項,差集(A-B)定義為出
1063 Set Similarity (25 分)求集合交集並集比值
題目 Given two sets of integers, the similarity of the sets is defined to be N
hive使用技巧:把很多小檔案匯入一張表中、顯示在檔案中位置和行數等。
1.使用MSCK命令匯入輸入到hive表 我們有時候會遇到很多小檔案需要匯入到一張hive表裡面,但是一個個匯入非常麻煩。 假設建立一個外部表,這個表在hdfs的order資料夾裡,但是這個資料夾現在是空的。所以用select * 是沒有資料的。 CREATE EXTERNAL TABL
資料報表開發技巧:自動為資料報表新增【小計】、【總計】行
在開發ERP系統的資料報表時,幾乎都是需要看到【小計】、【總計】這樣的彙總資料的,在資料報表的顯示列表中,最下面的一行通常就是【小計】或者【總計】的彙總行。如果手動為每個報表都增加彙總行,那也是一份不小的工作量。 所以,如果能自動為每個資料報表自動新增【小
Qt實用技巧:使用QMediaPlayer和Windows自帶元件播放swf、rmvb、mpg、mp4等視訊檔案
需求 做軟體時,點選進入介面需要播放一段視訊,該視訊的格式可相容swf、rmvb、mpg、mp4等視訊檔案。 原理 使用QMediaPlayer播放rmvb、mpg、mp4格式 使用windows Media Player
java題目:求 1+2+...+n,要求不能用除法、 for、 while、 if、 else、 switch、 case 等關鍵字及條件判斷語句( A?B:C)。
這是劍指offer的46道面試題,由於面試官諸多條件的限制,本文采用遞迴的手法完成程式碼 public class Sum { public static void main(String[] args) { System.out
劍指offer面試題:求二叉樹的映象(遞迴、迴圈解法及測試用例)
題目:給定二叉樹,將其變換為源二叉樹的映象。 二叉樹的定義如下: struct TreeNode { int val; TreeNode* left; TreeNode* right; }; 輸入描述: 二叉樹的映象定義: 源二叉樹
資料結構:求集合差集(c/c++)
用帶頭結點的單鏈表表示整數集合,完成以下演算法並分析時間複雜度: (1)設計一個演算法求兩個集合A和B的差集運算,即C=A-B,要求演算法的空間複雜度為O(1),並釋放單鏈表A和B中不需要的結點。 (2)假設集合中的元素按遞增排列,設計一個高效演算法求兩個集合A和B的差集運
資料結構——求集合(單鏈表)的並、交和差運算:
求集合(用單鏈表表示)的並、交和差運算: 問題描述:該演算法的設計,要求執行結果如下所示: (包含三種排序) 集合的運算如下: 原 集 合A: c a e h 原 集 合B: f h b g d a 有序集合A: a c e h 有序集合B: a b d f g h 集合的並C: a b
python-進階教程-對兩個集合/字典求交集、差集、並集
1.集合 a = set([1,2,3,4,5,100,1000]) b = set([1,2,3,4,5,128.1024]) #交集 print(a & b) #{1, 2, 3, 4, 5} #差集 print(a - b) #{1000, 100} #並集
python求補集合、交集、並集
聯合( | ) 聯合(union)操作和集合的 OR(又稱可兼析取(inclusive disjunction))其實是等價的,兩個集合的聯合是一個新集合,該集合中的每個元素都至少是其中一個
用順序表求集合的交集、並集和差集
使用順序表時, 需要定義一個數組來儲存順序表中的所有元素和定義一個整型變數來儲存順序表的長度。假定陣列用data[MaxSize]表示,長度整型變數用length表示,並採用結構體型別表示,元素型別採用通用型別識別符號ElemType,則順序表的儲存結構定義
兩個整數集合A,B,求二者交集、並集、差集
交集: void Intersect(const vector<int>& A,const vector<int>& B,vector<int>& ans) { map<int, int> Counter; cons
利用HashSet求集合的交集、並集
package com.test; import java.util.ArrayList; import java.util.HashSet; import java.util.Iterator; i
【C++】判斷元素是否在vector中,對vector去重,兩個vector求交集、並集
bool iostream space col 求交集 uniq AI void print #include <iostream> #include <vector> #include <algorithm> //sort函數、交並補
Python算法教程第三章知識點:求和式、遞歸式、侏儒排序法和並歸排序法
code pen nom eve end sort urn 使用 微信公眾號 本文目錄:一、求和式;二、遞歸式;三、侏儒排序法和並歸排序法微信公眾號:geekkr</br></br></br> 一、求和式 # 假設有一函數為f(),則在P
資料結構:求兩個有序列表的交集,並集
1.求兩個有序列表的交集 LNode* Intersection(LNode* La,LNode* Lb) { if (La==NULL||Lb==NULL) { return NULL; } LNode *pCHead = NULL; //A與B交集頭 LNode *pCE
兩個集合的相等判斷、交集、並集
#include<iostream> using namespace std; const int Size=10; void Get(int a[]); void Judge(int a[],int b[]);//判斷兩函式是否相等 void Intersaction(int a[],
求兩個Linux文字檔案的交集、差集、並集
一、交集 sort a.txt b.txt | uniq -d 二、並集 sort a.txt b.txt | uniq 三、差集 a.txt-b.txt: sort a.txt b.txt b.txt | uniq -u b.txt - a.txt: s
java(List或Array陣列)求交集、並集、差集, 泛型工具類
業務需要求不同型別的交集、並集、差集為避免程式碼冗餘編寫工具類。 注:list 轉陣列需傳入陣列,如果將原陣列傳入將會改變原陣列的值,同時泛型陣列又不可以例項化,解決方案:Arrays.copyOf(n,list.size()) ,使用copyOf功能,開闢返回集合的等長新陣列,避免修改原陣列。