本文主要講述了如何在linux中實現數據庫文件統計以及去重,感興趣的朋友可以來學習一下!
1. 把數據庫表導出到文本文件中
mysql -h主機 -P端口 -u用戶 -p密碼 -A 數據庫 -e “select email,domain,time from ent_login_01_000” > ent_login_01_000.txt
總共要統計最近3個月的登陸用戶 , 按月份分表,并且每月有128張表 , 全部導出到文件中 , 總共有80G
?
2. grep 查出所有的2018-12 2019-01 2019-02
find ./ -type f -name “ent_login_*” |xargs cat |grep “2018-12” > 2018-12.txt
find ./ -type f -name “ent_login_*” |xargs cat |grep “2019-01” > 2019-01.txt
find ./ -type f -name “ent_login_*” |xargs cat |grep “2019-02” > 2019-02.txt
3.使用awk? sort 和 uniq 只取出前面的用戶 , 并且先去一下重復行
cat 2019-02.txt|awk -F ” ” ‘{print $1″@”$2}’|sort -T /mnt/public/phpdev/187_test/tmp/|uniq > 2019-02-awk-sort-uniq.txt
cat 2019-01.txt|awk -F ” ” ‘{print $1″@”$2}’|sort -T /mnt/public/phpdev/187_test/tmp/|uniq > 2019-01-awk-sort-uniq.txt
cat 2018-12.txt|awk -F ” ” ‘{print $1″@”$2}’|sort -T /mnt/public/phpdev/187_test/tmp/|uniq > 2018-12-awk-sort-uniq.txt
uniq 只去除連續的重復行 , sort可以把行排成連續的 -T是因為默認占用/tmp的臨時目錄 , 根目錄我的不夠用了,因此改一下臨時目錄
這幾個文件占用了100多G