如何解析的shell脚本网址参数 [英] How to parse URL params in shell script

查看:264
本文介绍了如何解析的shell脚本网址参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经试过同样的成功在python解析网址参数,但我想知道是否有一种方法做同样的shell脚本。

我说,我有一个URL值:

<一个href=\"http://www.abcdsample.com/listservices?a=1&b=10&c=abcdeeff&d=1663889&listservices=a|b\" rel=\"nofollow\">http://www.abcdsample.com/listservices?a=1&b=10&c=abcdeeff&d=1663889&listservices=a|b

所需的输出:

 网​​址:http://www.abcdsample.com/
服务:listservices
a = 1时
B = 10
C = abcdeeff
D = 1663889
listservices = A | B


解决方案

下面是一个方法:

  BEGIN {
    FS =?
}
{
    URL = $ 1
    子(/ [^ /] * $ /,URL)
    打印URL,网址    子(/.*[/]/,\"\",$ 1)
    打印服务,$ 1    N =拆分($ 2,B,/&安培; /)
    对于(i = 1; I&LT; = N;我++)
        印片B [I]
}

另存为 script.awk 和运行像的awk -f script.awk文件

 网​​址:http://www.abcdsample.com/
服务:listservices
a = 1时
B = 10
C = abcdeeff
D = 1663889
listservices = A | B

请注意:这会像URL工作:

I have tried the same successfully in python to parse URL params but I would like to know if there is a way to do the same in Shell Script.

Say, I have a URL value:

http://www.abcdsample.com/listservices?a=1&b=10&c=abcdeeff&d=1663889&listservices=a|b

Required Output:

URL: http://www.abcdsample.com/
Service: listservices
a=1
b=10
c=abcdeeff
d=1663889
listservices=a|b

解决方案

Here is one method:

BEGIN{
    FS="?"
}
{
    url=$1
    sub(/[^/]*$/,"",url)
    print "URL:",url

    sub(/.*[/]/,"",$1)
    print "Service:",$1

    n=split($2,b,/&/)
    for (i=1;i<=n;i++)
        print b[i]
}

Save it as script.awk and run like awk -f script.awk file:

URL: http://www.abcdsample.com/
Service: listservices
a=1
b=10
c=abcdeeff
d=1663889
listservices=a|b

Note: this will work for URL like:

这篇关于如何解析的shell脚本网址参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆