去除數據重復--------Linux下文本文件合並和去除重復操作


 

一 命令簡單介紹

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM