先通过awk处理日志,取得login相关的字段(例子中命令$11为uid的字段,同理也可以得到ip,如果log_server-2013-07-19.log这个日志文件中有记录的话)
然后通过sort -n排序
然后通过uniq去掉相同的行
输出到结果文件中:
awk 'BEGIN{FS="|"} /log_player/&&/login/ {print $11}' log_server-2013-07-19.log |sort -n |uniq >7_19.txt
最后得到一系列7_20,7_21等结果文件
要做几日留存就比较相邻几天的文件
例如:得到七日留存
comm -12 7_19.txt 7_25.txt >7_19_to_7_25.txt
得到的7_19_to_7_25.txt就是七日留存的id了,看留存率,只需要比较7_19.txt和7_19_to_7_25.txt的行数就可以得出了