Shell脚本(AIX):从用户代理字符串中提取OS和浏览器信息

时间:2012-12-10 15:10:04

标签: linux shell unix aix

我在日志文件中获得如下所示的用户代理信息。

Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)
Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11)
Mozilla/5.0 (iPad; CPU OS 5_1_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9B206 Safari/7534.48.3)
Mozilla/5.0 (Windows NT 6.1; rv:16.0) Gecko/20100101 Firefox/16.0)
Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.28) Gecko/20120306 Firefox/3.6.28

我想从每个用户代理获取操作系统和浏览器信息。请建议我如何在shell脚本(AIX)中实现这一点。

1 个答案:

答案 0 :(得分:1)

使用case

case $user_agent in
  *MSIE*) browser=MSIE ;;
  *Chrome*) browser=Chrome ;;
  ....
  *) echo "Cannot extract browser from [[$user_agent]]" >2 ;;
esac
case $user_agent in
  *Windows*) plarform=Windows ;;
  *Linux*) platform=Linux ;;
  ....
  *) echo "Cannot extract platform from [[$user_agent]]" >2 ;;
esac

你需要经过几次迭代为各种浏览器添加案例(那里没有统一性)。