如何在纯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等。
答案 0 :(得分:2)
怎么样:
hostname=myserver.site.mydomain.com
output=${hostname%%.*}
%%应从尾部删除最长匹配。
答案 1 :(得分:0)
像
这样的东西$ hostname=myserver.site.mydomain.com
$ echo ${hostname/.*/}
myserver
${parameter/pattern/string}
扩展模式以生成与文件名扩展一样的模式。参数被扩展并且模式的最长匹配 反对其值被替换为字符串。