運營提了個導數據的需求,需要把某段時間登陸用戶id導出來,由於數據量大,分了多個文件保存。數據保存格式,每一行一個用戶id。剛開始打算用數據,由於數據量大,就放棄了,存數據庫去重,取數據交集差集比較方便,比如在A時間登陸了B時間沒有登陸的用戶(差集)。Linux下有操作文件的命令,而且功能也很強大。下面是我的備注(經我整理,來源於互聯網):
ls ./lc* | xargs -t -i sort {} -o {}
當前目錄以lc開頭的文件批量排序,結果保存到原文件中
ls ./lc* | xargs -t -i uniq {} ./uniq/{}
當前目錄以lc開頭的文件批量去重,結果保存到與原文件名相同uniq目錄下
cat lcUsrLoginData20120601.txt lcUsrLoginData20120616.txt | sort | uniq > ../month/lcUsrLoginData201206.txt
合並當前目錄下兩文件並排序並去重,結果保存到當前目錄的父目錄的子目錄month中
cat a.txt b.txt | sort | uniq -d | wc -l
comm -12 a.txt b.txt | wc -l
計算兩個文件交集元素個數(為什么最后是換行符才行?)
cat a.txt b.txt | sort | uniq -d > temp.txt
cat a.txt temp.txt | sort | uniq -u > diff.txt
計算兩個文件的差集