假设我有一个名为$subdomain
的变量,其中包含test.google.com
。如何删除子域以获取google.com
并将其存储在名为$ maindomain的变量中。
答案 0 :(得分:5)
一个子域名
maindomain=${subdomain#*.}
包含更多子域名
maindomain=$(sed 's/.*\.\(.*\..*\)/\1/' <<< $subdomain)
删除URI(如果有)
maindomain=$(sed 's/.*\.\(.*\..*\)/\1/' <<< ${subdomain%/*})
答案 1 :(得分:4)
maindomain=${subdomain#[[:alpha:]]*.}
将删除“测试”。或者在第一点之前的任何其他类似的前缀。
更好的回答,因为我们可以有多个子子域:
maindomain=$(expr match "$subdomain" '.*\.\(.*\..*\)')
它只保留域的尾随xxxxxx.xxx
部分。
答案 2 :(得分:1)
> subdomain=1.2.3.4.5
> IFS=. read -ra __ <<< "$subdomain"
> IFS=. eval 'maindomain="${__[*]:(-2)}"'
> echo "$maindomain"
4.5
另:
> IFS=. read -ra __ <<< "$subdomain"
> IFS=. eval 'maindomain="${__[*]:(-3)}"'
> echo "$maindomain"
3.4.5