linux 檔案內容去重

2021-09-29 23:29:15 字數 772 閱讀 5426

# 1

sort filename | uniq >.

/filename2

# 2

awk '!count[$0]++' filename >.

/filename2

# 原始檔

codingants@ubuntu:~/awk$ cat dup

hello world

awkcoding ants

hello world

awkhello world

awkcoding ants

coding ants

#去重後

codingants@ubuntu:~/awk$ awk '!count[$0]++' dup

hello world

awkcoding ants

注釋:

在awk中,對於未初始化的陣列變數,在進行數值運算的時候,會賦予初值0,因此a[$0]=0,++運算子的特性是先取值,後加1,因此pattern等價於 !0(非0)

而0為假,!為取反,因此整個pattern最後的結果為1,相當於if(1),pattern匹配成功,輸出當前記錄,對於dup檔案,前3條記錄的處理方式都是如此。

當讀取第4行資料「hello world」的時候,a[$0]=1,取反後的結果為0,即pattern為0,pattern匹配失敗,因此不輸出這條記錄,後續的資料以此類推,最終成功實現去除檔案中的重複行。

Linux檔案內容去重

1 兩個檔案的交集,並集 1.取出兩個檔案的並集 重複的行只保留乙份 cat file1 file2 sort uniq file3 2.取出兩個檔案的交集 只留下同時存在於兩個檔案中的檔案 cat file1 file2 sort uniq d file3 3.刪除交集,留下其他的行 cat fi...

linux 檔案去重

兩個檔案的交集,並集 前提條件 每個檔案中不得有重複行 1.取出兩個檔案的並集 重複的行只保留乙份 cat file1 file2 sort uniq file3 2.取出兩個檔案的交集 只留下同時存在於兩個檔案中的檔案 cat file1 file2 sort uniq d file3 3.刪除交...

檔案內容去重及排序

本文將使用 php 和 linux sort 命令兩種方法,分別實現檔案內容去重及排序,並提供完成演示 寫入1000000個數字,每行乙個數字 file user id.txt num 1000000 tmp for i 0 i num i 檢視檔案行數 wc l user id.txt 10000...