用 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 指令將無法生效。
延伸閱讀
留言
張貼留言