一般常见的网页服务器的日志中都会有UA信息,多数是下面这样的:
Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1
Mozilla/5.0 (iPhone; CPU iPhone OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Mobile/10B329
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; InfoPath.2; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; SE 2.X MetaSr 1.0)
将这一长串变化多端的字符从日志匹配出来,还是有难度的。 这个字符串里有空格,点号,斜杠,括号,分号等不同的字符。
日前摸索出如下方法,可以快速从日志中拎出,日志文件是Apache的:
shell> cat /www/log/httpd/access_log.20130925| awk -F “\”” ‘{print $6}’ |more
做法是,在awk中,使用“”作为定界符,其中第六段是UA,每个服务器情况不一样,可能别处是5,7,8等。