Linux 對比兩個文本的交集和差集(comm)

来源:http://www.cnblogs.com/chenmh/archive/2016/06/02/5531149.html
-Advertisement-
Play Games

介紹 comm命令可以對兩個已排序好的文本的內容進行交集和差集的對比,記住必須是已排序過的文件;可以使用sort命令對沒有排序的文件進行排序,comm命令在對比結果中會產生三列分別是:在A中不在B中的內容,在B中不在A中的內容,AB的交集的內容。 事例 [root@localhost test]# ...


介紹

comm命令可以對兩個已排序好的文本的內容進行交集和差集的對比,記住必須是已排序過的文件;可以使用sort命令對沒有排序的文件進行排序,comm命令在對比結果中會產生三列分別是:在A中不在B中的內容,在B中不在A中的內容,AB的交集的內容。

 

 

事例

[root@localhost test]# cat a
3 c
2 b
1 a

[root@localhost test]# cat b
2 b
3 c
4 d

其中文件a不是倒序的文件,看看直接拿來對比會出現什麼問題。

[root@localhost test]# comm a b
    2 b
        3 c
comm: file 1 is not in sorted order
2 b
1 a

    4 d

對比結果出現了問題提示文件1不是已排序的文件。

1.對文件進行排序

[root@localhost test]# sort a -o a
[root@localhost test]# cat a
1 a
2 b
3 c

2.對比文件

[root@localhost test]# comm a b
1 a
        2 b
        3 c
    4 d

第一列:在a文件中不在b文件中的內容

第二列:在b文件中不在a文件中的內容

第三列:a文件和b文件的交集

comm命令參數

-1:不顯示第一列

-2:不顯示第二列

-3:不顯示第三列

[root@localhost test]# comm a b -1
    2 b
    3 c
4 d
[root@localhost test]# comm a b -2
1 a
    2 b
    3 c
[root@localhost test]# comm a b -3
1 a
    4 d
[root@localhost test]# comm a b -12
2 b
3 c

其它的一些特殊處理方法

[root@localhost test]# comm a b -3
1 a
    4 d
[root@localhost test]# comm a b -3 | sed 's/^\t//'
1 a
4 d

可以使用sed命令將開頭的製表符(tab)替換掉,s:替換的意思,^:以什麼開頭,\t:製表符,//:空

總結

 

 

 

 

備註:

    作者:pursuer.chen

    博客:http://www.cnblogs.com/chenmh

本站點所有隨筆都是原創,歡迎大家轉載;但轉載時必須註明文章來源,且在文章開頭明顯處給明鏈接。

《歡迎交流討論》


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • --臨時表 insert into ##table([column1],S1, S2,S3)VALUES('VALUE','VALUE','VALUE','VALUE') --把原S1, S2,S3列名 作為 star欄位的內容,S1, S2,S3的數據放到qty欄位中 insert into ta ...
  • 此代碼已經測試,可以直接調用此類把數據寫入。 ...
  • 網站數據分析沒有規範的分析流程容易使最後的結果邏輯混亂或者偏離原來的主題,所以一套規範的流程能夠使網站分析更加清晰和有效。 網站分析其實就是一個發現問題、分析問題的解決問題的過程。問題的發現可以來源於多方面:網站運營中遇到的問題、用戶的反饋和抱怨、日常統計數據的表現異常等;分析問題的過程就是根據遇到 ...
  • 隨著人工智慧(AI)技術對各行各業有越來越深入的影響,我們也更多地在新聞或報告中聽到“機器學習”、“深度學習”、“增強學習”、“神經網路”等辭彙,對於非專業人士來說略為玄幻。這篇文章為讀者梳理了包括這些在內的12個關鍵詞,希望幫助讀者更清晰地理解,這項人工智慧技術的內涵和潛能。 1、 機器學習 湯姆 ...
  • 這幾天一直在搞linux下麵的.net mvc的部署工作,遇到了很多問題,還好有一些朋友的幫助,問題才得到瞭解決! 環境:Linux+Mongo+Jexus 希望的結果:直接運行windows+vistualstudio開發的MVC網站 遇到的問題:可以解析,但出現一些運行時(CLR)的錯誤 截圖 ...
  • 關於Linux的資源我瞭解還是比較少的,因為我最討厭用命令行了(那是我大學時代的陰影啊!)。這個資源收集很久了一直沒有分享出來,因為我對Linux的瞭解真的很少,不知道怎麼去描述,但是今天分享出來我想讓跟我一樣不太懂的和想學習一下Linux的小伙伴一起學習。 直接點擊小就可以下載哦! ├─lesso ...
  • .\usb\USB\usb_pwr.h(54): error: #20: identifier "bool" is undefinedusb\USB\usb_pwr.h(54): error: #20: identifier "bool" is undefinedusb-driver\STM32_U ...
  • 很久沒用筆記本上的ubuntu,用不順手,比在公司調教了半年多的電腦差遠了。一步一步來。先解決最不順手的三件事 1.su認證失敗。 新安裝的ubuntu系統是無法切換到root賬戶的,得做一番修改 sudo passwd 密碼: 輸入新的UNIX密碼: 確認密碼: 這樣就可以了 2.文件夾里打開終端 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...