《LINUX實操:Linux comm命令求出文件的交集、差集》要點:
本文介紹了LINUX實操:Linux comm命令求出文件的交集、差集,希望對您有用。如果有疑問,可以聯系我們。
A(1,2,3)和B(3,4,5),A和B的交集是3,A對B的差集是1和2,B對A的差集是4和5,A和B求差的成果是1、2、4、5.
在Linux中可以使用comm敕令求出這些集.
[root@linuxidc tmp]# cat <<eof>set1.txt > orange > gold > apple > sliver > steel > iron > eof
[root@linuxidc tmp]# cat <<eof>set2.txt > orange > gold > cookiee > carrot > eof
使用comm敕令.
[root@linuxidc tmp]# comm set1.txt set2.txt apple orange comm: file 1 is not in sorted order comm: file 2 is not in sorted order gold cookiee carrot silver steel iron
提示沒有排序,所以comm必須要保證比擬的文件是有序的.
[root@linuxidc tmp]# sort set1.txt -o set1.txt;sort set2.txt -o set2.txt
[root@linuxidc tmp]# comm set1.txt set2.txt
apple
carrot
cookiee
gold
iron
orange
silver
steel
成果中輸出了3列,每一列使用制表符\t隔開.第一列是set1.txt中有而set2.txt中沒有的,第二列則是set2.txt中有而set1.txt中沒有的,第三列是set1.txt和set2.txt中都有的.
依據這三列就可以求出交集、差集和求差.
交集便是第三列.使用-1和-2分別刪除第一第二列便是第三列的結果.
[root@linuxidc tmp]# comm set1.txt set2.txt -1 -2 gold orange
A對B的差集便是第一列,B對A的差集便是第二列.
[root@linuxidc tmp]# comm set1.txt set2.txt -2 -3 # A對B的差集 apple iron silver steel
[root@linuxidc tmp]# comm set1.txt set2.txt -1 -3 # B對A的差集 carrot cookiee
A和B的求差便是第一列和第二列的組合.
[root@linuxidc tmp]# comm set1.txt set2.txt -3 apple carrot cookiee iron silver steel
但是這樣分兩列的結果不便利查看,應該進行處理使它們顯示在同一列上.
[root@linuxidc tmp]# comm set1.txt set2.txt -3 | tr "\t" "\0" apple carrot cookiee iron silver steel
本文永遠更新鏈接地址:
《LINUX實操:Linux comm命令求出文件的交集、差集》是否對您有啟發,歡迎查看更多與《LINUX實操:Linux comm命令求出文件的交集、差集》相關教程,學精學透。維易PHP學院為您提供精彩教程。
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/8846.html