校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 一天一個shell命令 文本操作系列-comm命令用法

一天一個shell命令 文本操作系列-comm命令用法

熱門標簽:德陽400電話申請 怎么在百度地圖標注公司的位置 鶴崗400電話申請 測繪地圖標注名稱 百度地圖標注直線距離 外呼電話系統怎么操作 商機地圖標注 智能電銷機器人有用嗎 天津電話外呼系統排名

 comm命令比較兩個已排序文件每行數據的差異,并將其結果顯示出來,如果沒有指定任何參數,comm命令讀取這兩個文件,然后生成三列輸出:1>僅在file1中出現的行2>僅在file2中出現的行3>在兩個文件中都存在的行。
  如果為文件名之一指定 -(減號),則 comm 命令會從標準輸入設備讀取數據。

題外話:說到比較文件,過來人都用過Beyond Compare,老版本時候,我們只能右鍵選中用于比較的文件,再選中被比較文件,對比。 如今他有了豐富的界面,支持linux上比較文件。 干什么用的?svn管理不善的時候,版本控制做的不好的時候,你就會期望他了。這都是經驗- -!

回到正題:在shell中,也有個這么個命令---comm。 comm可用于兩個文件之間的比較。可以用于文件的比較,交集,求差以及差集操作。

這個定義其實不夠詳細,應該是 comm逐行比較已排序的文件1和文件2.

全稱:

(慚愧)沒有找到合適的全稱。 com 很明顯是compare開頭,m為mode。望高手指正。

查看—help

用法:comm [選項]... 文件1 文件2
逐行比較已排序的文件文件1 和文件2。

如果不附帶選項,程序會生成三列輸出。第一列包含文件1 特有的行,第二列包含 文件2 特有的行,而第三列包含兩個文件共有的行。

  -1        不輸出文件1 特有的行
  -2        不輸出文件2 特有的行
  -3        不輸出兩個文件共有的行

  --check-order            檢查輸入是否被正確排序,即使所有輸入行均成對
  --nocheck-order        不檢查輸入是否被正確排序
  --output-delimiter=STR    依照STR 分列

 解讀:

1. --check-order

該命令默認情況下  如果希望不檢驗排序,可以--nocheck-order。

 2. --output-delimiter=STR

 STR 就是個表達式。 可以是任何非特殊字符

3. -1,-2

  可以寫成 -12 與普通命令用起來一樣

  實例:

1.建立A.txt

加入元素

apple
 orange
 gold
 silver
 steel
 iron

2. 建立B.txt

加入元素

orange
 gold
 cookies
 carrot

可以嘗試直接比較: comm A.txt B.txt

你會發現提示一個錯誤,沒有排序。

3. 排序

復制代碼 代碼如下:

sort A.txt -o A.txt; sort B.txt -o B.txt

4. 比較

復制代碼 代碼如下:

$comm A.txt B.txt

復制代碼 代碼如下:

apple  
      carrot  
      cookies  
                gold  
iron  
                orange  
silver  
steel

結果實際為3列 其中第一列是文件1特有 -1表示刪除第一列

第二列是文件2特有的  -2代表刪除第二列
第三列代表共同有的  -3代表刪除共有的列

4.1 打印交集:

$comm –12 A.txt B.txt

4.2 打印兩個文件中不同的行

$comm –3 A.txt B.txt

補充個小修改,兩列不好看,用sed刪除行首的\t

$comm –3 A.txt B.txt | sed 's/^\t//'

實戰:

  comm在實戰中,只會在一些非常特殊的場景中用到。 比較簡單,就不舉例了。(筆者遇到的場景中,仍然堅持有更好的方案時候,不用這個命令,呵呵)。

本文出自 “書生” 博客

標簽:武漢 丹東 優質小號 自貢 滁州 鎮江 百色 六盤水

巨人網絡通訊聲明:本文標題《一天一個shell命令 文本操作系列-comm命令用法》,本文關鍵詞  一天,一個,shell,命令,文本,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《一天一個shell命令 文本操作系列-comm命令用法》相關的同類信息!
  • 本頁收集關于一天一個shell命令 文本操作系列-comm命令用法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 靖边县| 梁平县| 泾川县| 福州市| 习水县| 贺州市| 江华| 惠来县| 东乌珠穆沁旗| 临城县| 建阳市| 竹溪县| 六枝特区| 周至县| 赫章县| 定日县| 丰县| 湘潭市| 莱芜市| 万年县| 紫云| 林周县| 聂拉木县| 宜城市| 泽普县| 利辛县| 西畴县| 广西| 吉安市| 兴安县| 吉林市| 宁晋县| 建德市| 舒兰市| 乌鲁木齐县| 慈利县| 桂东县| 洞口县| 江津市| 两当县| 夏津县|