sort a.txt b.txt | uniq -d
sort a.txt b.txt | uniq
a.txt-b.txt:
sort a.txt b.txt b.txt | uniq -u
b.txt - a.txt:
sort b.txt a.txt a.txt | uniq -u
使用sort可以將檔案進行排序(sort排序是為了管道交給uniq進行處理,uniq只能處理相鄰的行),可以使用sort後面的引數,例如 -n 按照數字格式排序,例如 -i 忽略大小寫,例如使用-r 為逆序輸出等
uniq為刪除檔案中重複的行,得到檔案中唯一的行,引數-d 表示的是輸出出現次數大於1的內容;引數-u表示的是輸出出現次數為1的內容;那麼對於上述的求交集並集差集的命令做如下的解釋:
sort a.txt b.txt | uniq -d:將兩個檔案進行排序,uniq使得兩個檔案中的內容為唯一的,使用-d輸出兩個檔案中次數大於1的內容,即是得到交集
sort a.txt b.txt | uniq :將兩個檔案進行排序,uniq使得兩個檔案中的內容為唯一的,即可得到兩個檔案的並集
sort a.txt b.txt b.txt | uniq -u:將兩個檔案排序,最後輸出a.txt b.txt b.txt檔案中只出現過一次的內容,因為有兩個b.txt所以只會輸出只在a.txt出現過一次的內容(b.txt的內容至少出現兩次)
,即是a.txt-b.txt差集;對於b.txt-a.txt同理。
# a.hosts
[root(0)@thatsit 11:40:46 ~/scripts]# cat a.hosts10.10.1.101
10.10.1.102
10.10.1.103
10.10.1.104
[root(0)@thatsit 11:40:47 ~/scripts]#
# b.hosts
[root(0)@thatsit 11:40:48 ~/scripts]# cat b.hosts10.10.1.101
10.10.1.103
10.10.1.105
[root(0)@thatsit 11:40:49 ~/scripts]#
# a.hosts ∩ b.hosts
[root(0)@thatsit 11:40:49 ~/scripts]# sort a.hosts b.hosts | uniq -d10.10.1.101
10.10.1.103
[root(0)@thatsit 11:41:08 ~/scripts]#
# a.hosts ∪ b.hosts
[root(0)@thatsit 11:41:10 ~/scripts]# sort a.hosts b.hosts | uniq10.10.1.101
10.10.1.102
10.10.1.103
10.10.1.104
10.10.1.105
[root(0)@thatsit 11:41:19 ~/scripts]#
# a.hosts - b.hosts
[root(0)@thatsit 11:41:25 ~/scripts]# sort a.hosts b.hosts b.hosts | uniq -u10.10.1.102
10.10.1.104
[root(0)@thatsit 11:41:45 ~/scripts]#
# b.hosts - a.hosts
[root(0)@thatsit 11:41:47 ~/scripts]# sort a.hosts a.hosts b.hosts | uniq -u10.10.1.105
[root(0)@thatsit 11:41:55 ~/scripts]#
兩個文字檔案某一單列的交集
1.txt有一列,不都在2.txt裡 2.txt有幾列,第一列的值裡可能有1.txt的值,中英文大小寫各種符號都可能有除了 列分隔符是 awk f beginnrfnrnr fnr 1.txt 2.txt 解釋如下 f 指定分隔符 begin語句忽略了英文大小寫 nr fnr意味著在讀第乙個檔案。n...
用perl實現兩個文字檔案交叉合併
perl語言被某些愛好者稱作 unix 中的王牌工具 確實,和c c 相比,perl語言特別是在處理 文字和檔案方面,有一些獨到的優勢,在處理某些文字檔案任務時,真的是很方便的。比如下面這個問題 現在兩個文字檔案a.txt和b.txt,內容如下 a.txt ab cdef gb.txt 12 345...
python 實現兩個文字檔案內容去重
實現兩個文字內容去重,輸出兩個文字不重複的結果 兩個測試文字內容如下 1.txt中內容為 123 4567 82.txt中內容為 123 4567 891011 1213 1415 分別讀取兩個文字的內容讀取1.txt的內容,具體實現如下 str1 file 1 open 1.txt r encod...