統計資料時經常會有這樣的要求,有檔案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...