介紹 comm命令可以對兩個已排序好的文本的內容進行交集和差集的對比,記住必須是已排序過的文件;可以使用sort命令對沒有排序的文件進行排序,comm命令在對比結果中會產生三列分別是:在A中不在B中的內容,在B中不在A中的內容,AB的交集的內容。 事例 [root@localhost test]# ...
介紹
comm命令可以對兩個已排序好的文本的內容進行交集和差集的對比,記住必須是已排序過的文件;可以使用sort命令對沒有排序的文件進行排序,comm命令在對比結果中會產生三列分別是:在A中不在B中的內容,在B中不在A中的內容,AB的交集的內容。
事例
[root@localhost test]# cat a 3 c 2 b 1 a [root@localhost test]# cat b 2 b 3 c 4 d
其中文件a不是倒序的文件,看看直接拿來對比會出現什麼問題。
[root@localhost test]# comm a b 2 b 3 c comm: file 1 is not in sorted order 2 b 1 a 4 d
對比結果出現了問題提示文件1不是已排序的文件。
1.對文件進行排序
[root@localhost test]# sort a -o a [root@localhost test]# cat a 1 a 2 b 3 c
2.對比文件
[root@localhost test]# comm a b 1 a 2 b 3 c 4 d
第一列:在a文件中不在b文件中的內容
第二列:在b文件中不在a文件中的內容
第三列:a文件和b文件的交集
comm命令參數
-1:不顯示第一列
-2:不顯示第二列
-3:不顯示第三列
[root@localhost test]# comm a b -1 2 b 3 c 4 d [root@localhost test]# comm a b -2 1 a 2 b 3 c [root@localhost test]# comm a b -3 1 a 4 d [root@localhost test]# comm a b -12 2 b 3 c
其它的一些特殊處理方法
[root@localhost test]# comm a b -3 1 a 4 d [root@localhost test]# comm a b -3 | sed 's/^\t//' 1 a 4 d
可以使用sed命令將開頭的製表符(tab)替換掉,s:替換的意思,^:以什麼開頭,\t:製表符,//:空
總結
備註: 作者:pursuer.chen 博客:http://www.cnblogs.com/chenmh 本站點所有隨筆都是原創,歡迎大家轉載;但轉載時必須註明文章來源,且在文章開頭明顯處給明鏈接。 《歡迎交流討論》 |