如何在bash中从主机名中删除域名

时间:2015-05-21 06:10:00

标签: bash

如何在纯Bash中从主机名中删除域名?

示例:

hostname = myserver.site.mydomain.com
output=${hostname#*.*}

将给出

site.mydomain.com

,而

hostname = myserver.site.mydomain.com
output=${hostname%*.*}

将给出

myserver.site.mydomain

我只想要" myserver"

有什么想法吗?

我希望使用纯Bash,而不是sed,awk,cut等。

2 个答案:

答案 0 :(得分:2)

怎么样:

hostname=myserver.site.mydomain.com
output=${hostname%%.*}

%%应从尾部删除最长匹配。

答案 1 :(得分:0)

这样的东西

Parameter expansions会很有用

$ hostname=myserver.site.mydomain.com
$ echo ${hostname/.*/}
myserver
  

${parameter/pattern/string}

     

扩展模式以生成与文件名扩展一样的模式。参数被扩展并且模式的最长匹配   反对其值被替换为字符串。