一 命令簡單介紹
cat:將文本文件讀出來 (concatenate files and print on the standard output)文件去重合並的前提條件是先取出文件的內容。
uniq: 用來處理重復的行。(report or omit repeated lines)
Filter adjacent matching lines from INPUT (or standard input), writing to OUTPUT (or standard output).
從輸入或者標准輸入中過濾鄰近的行,寫到輸出文件或者標准輸出中。所以此命令只能處理鄰近的行,
如果對兩個文件進行合並去重,則必須首先對其排序,實現一一對應,否則去重失敗。
sort:對文本的行進行排序(sort lines of text files)
Write sorted concatenation of all FILE(s) to standard output.
對於去重而言使用默認排序方式就可以了。
paste:merge lines of files
將按行將不同文件行信息放在一行。缺省情況下, p a s t e連接時,用空格或t a b鍵分隔新行中不同文本,除非指定- d選項,它將成為域分隔符。
二 實例應用:
1、 兩個文件的交集、並集(前提條件:每個文件中不得有重復 也可以是多個文件)(1)、取出兩個文件的並集(重復的行只保留一份)
cat file1 file2 | sort | uniq > file3
(2)、取出兩個文件的交集(只留下同時存在於兩個文件中的文件)
cat file1 file2 | sort | uniq -d > file3
(3)、 刪除交集,留下其他的行
cat file1 file2 | sort | uniq -u > file3
2、兩個文件合並
(1)、 一個文件在上,一個文件在下
cat file1 file2 > file3
(2)、 一個文件在左,一個文件在右
paste file1 file2 > file3
3、一個文件去掉重復的行
(1)、 重復的多行記為一行
sort file |uniq
(2)、 重復的行全部去掉
sort file |uniq -u