需求
- 统计log4j业务日志中排重后的userid
文件存储格式
-
目录格式
/home/logs/198-1/2014-03-31/dataLog.log.2014-03-31
其中后面三部分是可变的
-
文件中内容格式
779286836 0 F1-0 120.202.47.36 2014-03-31 00:23:42
361185092 0 Z5 114.96.217.77 2014-03-31 00:28:20
795358522 0 F1-0 171.92.57.240 2014-03-31 00:43:41
993922327 0 F1-0 123.79.161.109 2014-03-31 00:43:52
linux命令
cat /home/logs/*/2014*/dataLog.log.* | awk '$1~/^([0-9])+$/{print $1}' |sort|uniq > userids.txt
#/home/logs/*/2014*/dataLog.log.* 找到所有目录下的日志文件
#$1~/^([0-9])+ 过滤第一个域只有数字才显示出来
#{print $1} 统计userid只print $1即可
#sort|uniq 两个命令结合进行排重,由于uniq排重认为相临的两行是重复的,而对于间隔的不认为是重复的,所以结合sort便可实现真正的排重
#> userids.txt 最后将内容输出到userids.txt中
Resources:
8 Linux Commands Every Developer Should Know