首頁 > 文字處理與搜尋 > comm

comm: 比較兩個已排序檔案的共同和獨有行

comm 命令比較兩個已排序檔案的內容,並將僅存在於其中一個檔案中的行以及兩者共有的行分成三列輸出。它對於合併或去重操作非常有用。

概述

comm 是 'common' 的縮寫,它是一個專門用於比較兩個已排序檔案之間行的命令。它並行比較檔案內容,並將結果分為三列顯示。第一列表示僅存在於第一個檔案中的行,第二列表示僅存在於第二個檔案中的行,第三列表示兩個檔案共有的行。此命令在比較已排序的文字資料(例如資料庫列表或使用者 ID 列表)時特別強大。

主要特點

comm 命令的主要特點如下:

  • 用於比較兩個已排序的檔案。(如果檔案未排序,則必須先使用 `sort` 命令。)
  • 將比較結果清晰地分為三列輸出。
  • 方便一目了然地掌握文本資料的共同點和差異。
  • 具有選擇性隱藏輸出列的功能,可應用於多種用途。

comm 與 diff

comm 和 diff 都是檔案比較工具,但它們的運作方式和目的有所不同。

  • comm: 專門用於已排序的檔案,將共同行和獨有行輸出為三列。無法偵測到更改(行內容的修改)。
  • diff: 可以比較未排序的檔案,並詳細輸出所有逐行更改(新增、刪除、修改)。

主要選項

comm 命令的選項主要用於隱藏特定的列。

1) 控制輸出列

2) 幫助

生成的命令:

請試著組合命令。

這個 Django 應用程序是一個技術指南文檔,旨在為用戶輕鬆解釋 Linux 的各種命令。

`comm` 執行命令。

請將上述選項組合在一起,與 AI 一同虛擬執行命令。

使用範例

透過 comm 命令的各種使用範例來熟悉其功能。

比較兩個檔案的共同和獨有行

comm file1.txt file2.txt

將兩個已排序檔案的內容分為三列進行比較。

僅輸出兩個檔案共有的行

comm -12 file1.txt file2.txt

使用 `-1` 和 `-2` 選項隱藏僅存在於第一個和第二個檔案中的行,僅輸出共同的行。

僅輸出兩個檔案的獨有行

comm -3 file1.txt file2.txt

使用 `-3` 選項隱藏共同的行,僅輸出每個檔案中獨有的行。

比較未排序的檔案

comm <(sort file1.txt) <(sort file2.txt)

可以透過管道 (`|`) 將 `sort` 命令與 `comm` 一起使用,以比較未排序的檔案。

安裝

comm 作為 `coreutils` 套件的一部分,預設包含在大多數 Linux 發行版中。無需額外安裝。

提示與注意事項

整理了使用 comm 命令時應注意的事項。

提示

  • 在使用 comm 之前,**務必對檔案內容進行排序。** 如果檔案未排序,將無法獲得正確的比較結果。
  • 要檢查檔案是否已排序,可以執行 `comm file1.txt file2.txt` 並觀察輸出是否符合預期,或者透過 `sort` 命令對檔案進行排序後再重新比較。
  • `<(...)` 語法是進程替換 (process substitution),它將 `sort` 命令的結果作為臨時檔案傳遞給 `comm`。這種方法可以方便地比較未排序的檔案。

相關命令

功能上相似或經常一起使用的命令。


相同類別命令