在bash中解析URL下面

时间:2016-11-02 11:20:40

标签: bash shell parsing url

我有一个类似“ http://host:port/cgi-bin/hw.sh/some/path/to/data/ ”的网址。 对于上述网址,我只需要获取值“ / some / path / to / data / ”。 如何从shell脚本中的上述URL中获取所需的值。

2 个答案:

答案 0 :(得分:1)

您可以使用awk -F选项指定"hw.sh"作为字段输入分隔符并打印第二个字段:

$ echo "http://host:port/cgi-bin/hw.sh/some/path/to/data/" | awk -F"hw.sh" '{print $2}'

/some/path/to/data/

或bash脚本:

#!/bin/bash

awk -F"hw.sh" '{print $2}' <<< "http://host:port/cgi-bin/hw.sh/some/path/to/data/"

答案 1 :(得分:0)

如果你想要的是&#34; hw.sh&#34;之后的一切,那就非常容易了:

#!/bin/sh
url='http://host:port/cgi-bin/hw.sh/some/path/to/data/'
path=${url#*hw.sh}
echo $path

哪个会给你:

/some/path/to/data/

参见&#34;参数扩展&#34; bash man page部分详情。