Linux中comm命令怎么用
這篇文章將為大家詳細(xì)講解有關(guān)Linux中comm命令怎么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
Linux常用命令comm用于比較兩個已排過序的文件。這項指令會一列列地比較兩個已排序文件的差異,并將其結(jié)果顯示出來
comm
按行比較兩個已排序的文件。
概要
comm[OPTION]...FILE1FILE2
主要用途
- 
按行比較兩個已排序的文件。 
- 
當(dāng)FILE1或FILE2為-時,讀取標(biāo)準(zhǔn)輸入。 
- 
無選項時輸出三列,第一列為FILE1獨有的行,第二列為FILE2獨有的行,第三列為FILE1,F(xiàn)ILE2共有的行。 
選項
-1不輸出第一列。 -2不輸出第二列。 -3不輸出第三列。 --check-order檢查輸入行是否正確的排序,即使它們確實是已排序過的。 --nocheck-order不檢查輸入行是否正確的排序。 --output-delimiter=STR使用STR作為輸出列之間的分隔符而不是默認(rèn)的TAB。 --total額外地增加第四列輸出概要。 -z,--zero-terminated設(shè)置行終止符為NUL(空),而不是換行符。 --help顯示幫助信息并退出。 --version顯示版本信息并退出。
返回值
返回0表示成功,返回非0值表示失敗。
例子
文本 aaa.txt 內(nèi)容
[root@localhosttext]#cataaa.txt aaa bbb ccc ddd eee 111 222
文本 bbb.txt 內(nèi)容
[root@localhosttext]#catbbb.txt bbb ccc aaa hhh ttt jjj
比較結(jié)果
[root@localhosttext]#comm--nocheck-orderaaa.txtbbb.txt aaa bbb ccc aaa ddd eee 111 222 hhh ttt jjj
輸出的第一列只包含在aaa.txt中出現(xiàn)的行,第二列包含在bbb.txt中出現(xiàn)的行,第三列包含在aaa.txt和bbb.txt中相同的行。各列之間以制表符(\t)作為分隔符。
比較排序過的文檔
先通過 sort 將文件內(nèi)容排序:
[root@localhost~]#sortaaa.txt>aaa1.txt [root@localhost~]#sortbbb.txt>bbb1.txt
比較結(jié)果:
[root@localhost~]#commaaa1.txtbbb1.txt 111 222 aaa bbb ccc ddd eee hhh jjj ttt
交集
打印兩個文件的交集,需要刪除第一列和第二列:
[root@localhosttext]#commaaa.txtbbb.txt-1-2 bbb ccc
差集
通過刪除不需要的列,可以得到aaa.txt和bbb.txt的差集:
aaa.txt的差集
[root@localhosttext]#commaaa.txtbbb.txt-2-3 aaa ddd eee 111 222
bbb.txt的差集
[root@localhosttext]#commaaa.txtbbb.txt-1-3 aaa hhh ttt jjj
注意
- 
該命令是GNU coreutils包中的命令,相關(guān)的幫助信息請查看man -s 1 comm,info coreutils 'comm invocation'。 
總結(jié)
以上是生活随笔為你收集整理的Linux中comm命令怎么用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: java中swing是什么意思
- 下一篇: 苹果消息推送服务教程:第一部分(共2部分
