下面的例子將會告訴你 comm 命令是如何工做的。。html |
如何使用 comm比較兩個排序好的文件linux
要使用comm 命令比較兩個排序好的文件,只須要把它們的名字做爲comm 命令的參數。下面是一般的語法:工具
comm [name-of-first-file] [name-of-second-file]
好比,假設file1 和file2 是這種狀況下的兩個文件。前者包含下面幾行內容:命令行
001 056 127 258
然後者包含下面幾行內容:htm
002 056 167 369
此時,comm命令的輸出以下圖所示:排序
comm file1 file2
你能夠看到,輸出包含 3 列。第一列是僅包含在file1中的內容,第二列是僅包含在 file2 中的內容,最後,第三列是兩個文件中均包含的內容。教程
如何不輸出 comm 命令輸出中的某些列字符串
若是你想,你能夠不輸出 comm命令輸出中的某些列。對於該特性,你有三個命令行選項可用:-一、-2 和 -3 。正如你所猜測的,這些數字表示你不想輸出的列。get
好比,下面這個命令將會不輸出上面例子中的第三列:it
comm -3 file1 file2
所以,你能夠看到,第三列並無輸出。
注意,你能夠經過一個單一命令同時不輸出多列內容。好比:
comm -12 file1 file2
上面這個命令將會不輸出第1、二列。
如何使用 comm 命令比較兩個未排序好的文件
正如咱們所知道的,comm 只可用於排序好的文件。若是發現其中一個文件未排序好,那麼便會在輸出中產生一條信息來告訴用戶。好比,咱們交換 file1 的第一行和第二行,而後與 file2 進行比較。下面是該命令的輸出:
你能夠看到,這個命令產生一個輸出告訴咱們:file1 尚未排序好。此時,若是你不想讓這個工具檢查輸入是否已經排序好,那麼你可使用 --nocheck-order 選項:
comm --nocheck-order file1 file2
你能夠看到,前面出現的提示信息已經消失了。
注意,若是你想明確告訴 comm 命令來檢查輸入文件是否排序好,那麼你可使用 --check-order選項。
如何用自定義字符串分隔comm 命令的輸出列
默認狀況下,comm 命令的輸出列之間是以空格分隔的。然而,如何你想使用一個自定義字符串做爲分隔符,那麼你可使用 --output-delimiter選項。使用該選項時須要指定你想用來做爲分隔符的字符串。
comm --output-delimiter=+ file1 file2
好比,咱們使用加號來做爲分隔符:
如何使 comm 的輸出行以 NUL字符終止
默認狀況下,comm 命令的輸出行以新行終止。然而,若是你想,那麼你能夠改成以
NUL
字符終止,只須要使用-z 選項便可:
comm -z file1 file2
結論
comm 命令並無特別多的特性性,咱們在這兒已經討論了它的絕大多數命令行選項。只須要理解和練習在這篇教程中討論的內容,那麼你即可以在平常工做中知道如何使用這個工具了。若是你有任何問題或者疑問,請前往該命令的 man 手冊,或者在下面評論。
本文地址:http://www.linuxprobe.com/comm-sort.html