shell 資料的並集和差集

2021-12-29 22:01:30 字數 757 閱讀 7871

統計資料時經常會有這樣的要求,有檔案a和檔案b。現在需要知道檔案中的資料,那些是a和b共有的,那些只出現在a檔案中(或者那些只出現在b檔案中)。這樣的需求可以通過uniq命令完成。

uniq -d 會輸出重複行

uniq -u 只顯示唯一的行

利用uniq sort 略施小計就能搞定了

例如 檔案a

100101102

100檔案b103

102102指令碼如下

cat a | sort | uniq >tmpa #a資料集祛重

cat b | sort | uniq > tmpb #b資料集祛重

cat tmpa tmpb | sort | uniq -d #a和b的交集

cat tmpa tmpb tmpb| sort | uniq -u #a中有而b中沒有的資料(a-b)說明,交集和差集是計算原理是什麼呢?其實單步執行一下就清楚了。

cat a | sort | uniq >tmpa ;cat tmpa

100101

102cat b | sort | uniq >tmpb ;cat tmpb

102103然後用cat tmpa tmpb 合併兩個檔案cat tmpa tmpb

100101

102102

103最後,用uniq找出檔案中的重複行,就是a和b的交集了

cat tmpa tmpb | sort | uniq -d

102至於求差集,原理是類似的。

交集並集差集

1 內連線 select from student a inner join sc b on a.sno b.sno 左連線 select from student a left join sc b on a.sno b.sno 差集 select sno from student except s...

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 fil...

PHP 交集 並集 差集

array flip array splice 並集 array merge 過濾 array filter 去重 array unique 差集 array diff array diff 函式返回兩個陣列的差集陣列。該陣列包括了所有在被比較的陣列中,但是不在任何其他引數陣列中的鍵值。a1 arr...