天天看點

[a,txt,b,txt,b]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:

  sort b.txt a.txt a.txt | uniq -u

  四、相關的解釋

  使用sort可以将檔案進行排序(sort排序是為了管道交給uniq進行處理,uniq隻能處理相鄰的行),可以使用sort後面的參數,例如 -n 按照數字格式排序,例如 -i 忽略大小寫,例如使用-r 為逆序輸出等

  uniq為删除檔案中重複的行,得到檔案中唯一的行,參數-d 表示的是

二手手機号出售平台

輸出出現次數大于1的内容;參數-u表示的是輸出出現次數為1的内容;那麼對于上述的求交集并集差集的指令做如下的解釋:

  sort a.txt b.txt | uniq -d:将兩個檔案進行排序,uniq使得兩個檔案中的内容為唯一的,使用-d輸出兩個檔案中次數大于1的内容,即是得到交集

  sort a.txt b.txt | uniq :将兩個檔案進行排序,uniq使得兩個檔案中的内容為唯一的,即可得到兩個檔案的并集

  sort a.txt b.txt b.txt | uniq -u:将兩個檔案排序,最後輸出a.txt b.txt b.txt檔案中隻出現過一次的内容,因為有兩個b.txt是以隻會輸出隻在a.txt出現過一次的内容(b.txt的内容至少出現兩次),即是a.txt-b.txt差集;對于b.txt-a.txt同理。

繼續閱讀