使用bash删除子域

use*_*277 0 bash awk sed

假设我有一个叫做变量$subdomain包含test.google.com.怎么可以剥夺我的子域获得google.com并将其存储在一个变量名为$ maindomain.

小智 5

一个子域名

maindomain=${subdomain#*.}  
Run Code Online (Sandbox Code Playgroud)

有更多的子域名

maindomain=$(sed 's/.*\.\(.*\..*\)/\1/' <<< $subdomain)
Run Code Online (Sandbox Code Playgroud)

删除URI(如果有)

maindomain=$(sed 's/.*\.\(.*\..*\)/\1/' <<< ${subdomain%/*})
Run Code Online (Sandbox Code Playgroud)


jay*_*bee 5

maindomain=${subdomain#[[:alpha:]]*.}
Run Code Online (Sandbox Code Playgroud)

将删除“测试”。或第一个点之前的任何其他类似前缀。

更好的答案,因为我们可以有多个子子网域:

maindomain=$(expr match "$subdomain" '.*\.\(.*\..*\)')
Run Code Online (Sandbox Code Playgroud)

它仅保留xxxxxx.xxx域的尾部。