用 Linux 的 sort 與 uniq 指令,刪除重複的資料列

linux sort uniq 排除重複數據

 

之前流浪貓介紹過以 Excel, Calc 移除重複數值與文字的方法,但試算表程式不太適合用來處理動輒百萬筆的大數據 (Big data)。除了用更專業的資料庫軟體來處理之外,我們也可以用 Linux 內建的指令來幫我們比對重複數據,並自動將其刪除。

 

 

應用範例

假設 All-Url.txt 為原始資料庫,內含上百萬筆網址;All-Url-Live.txt 是經 wget 的 --spider 指令驗證後『還活著』的網址。而我們的目標是製作出『已經死亡』的網站列表。翠維尼

 

指令:

cat All-Url.txt All-Url-Live.txt > combin.txt

sort combin.txt | uniq -u > Dead-Url.txt

 

簡單來說,就是先用 cat 將 All-Url.txt 與 All-Url-Live.txt 合併,再以 sort 指令將 combin.txt 內容進行排序,最後用 uniq -u 排除相同資料,留下不重複的網址列。另外要注意的是,由於 uniq 是依據上下鄰近兩行資料進行比對,若沒有以 sort 進行排序的話,uniq -u 指令將無法生效。

 

 

 

延伸閱讀

移除 Excel, Calc 試算表欄位重複的數值與文字

更多 Linux 辦公室戰技

 

 

留言

這個網誌中的熱門文章

Windows 11 真有必要升級嗎?安裝前你應該要知道的災情 (2022/12)