如何解析的shell脚本网址参数 [英] How to parse URL params in shell script
问题描述
我已经试过同样的成功在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工作:
- http://www.abcdsample.com/listservices?a=1&b=10&c=abcdeeff&d=1663889&listservices=a|b
- www.abcdsample.com/listservices?a=1&b=10&c=abcdeeff&d=1663889&listservices=a|b
- abcdsample.com/listservices?a=1&b=10&c=abcdeeff&d=1663889&listservices=a|b
- listservices一个= 1和b = 10和C = abcdeeff和D = 1663889&放大器; listservices = A | B
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:
- http://www.abcdsample.com/listservices?a=1&b=10&c=abcdeeff&d=1663889&listservices=a|b
- www.abcdsample.com/listservices?a=1&b=10&c=abcdeeff&d=1663889&listservices=a|b
- abcdsample.com/listservices?a=1&b=10&c=abcdeeff&d=1663889&listservices=a|b
- listservices?a=1&b=10&c=abcdeeff&d=1663889&listservices=a|b
这篇关于如何解析的shell脚本网址参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!