【问题标题】:Shell Script (AIX) : Extracting OS and browser information from user agent string [closed]Shell 脚本(AIX):从用户代理字符串中提取操作系统和浏览器信息 [关闭]
【发布时间】:2012-11-28 00:34:35
【问题描述】:

我在日志文件中获取如下用户代理信息。

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)中实现这一点。

【问题讨论】:

    标签: linux shell unix aix


    【解决方案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
    

    您将不得不经历一些迭代,为各种浏览器添加案例(那里没有统一性)。

    【讨论】:

    • 非常感谢。我正在使用 AIX,并且在我的脚本文件中有 #!/bin/bash。它会抛出语法错误,说额外的 ')' 符号。也尝试了其他语法。似乎没有任何工作。有什么建议吗??
    • 尝试搜索多余的“)”或缺少的“;;”。尝试删除子句以隔离故障。如果一切都失败了,请在单独的问题中发布您的脚本。
    • 谢谢。我试图将它与 awk 脚本一起使用。我不确定那有什么问题。我将代码更改为 while do 循环。现在好了。
    猜你喜欢
    • 2012-03-30
    • 2010-11-22
    • 1970-01-01
    • 2017-12-14
    • 2016-04-12
    • 2011-05-11
    • 1970-01-01
    • 1970-01-01
    • 2021-03-07
    相关资源
    最近更新 更多