我有一个在FQDN中具有域和子域的主机名列表。我只需要从它获取父(根)域名。
我已经尝试了substring,但没有成功。
abc.xyz.me.com
def.me.com
ghi.sub.new.com
jkl.sup.old.com这些是一些例子,从列表中,我想获得根域(我,新的,旧的)。
发布于 2017-06-01 12:49:17
最简单的方法是使用split并获得索引-2
$FQDN = ('abc.xyz.me.com', 'def.me.com', 'ghi.sub.new.com', 'jkl.sup.old.com')
ForEach ($Domain in $FQDN)
{
write-host ($Domain.split(".")[-2])
}你可能想做更多的事情,而不仅仅是写到主机上,但这应该会给你一个想法。
发布于 2017-06-01 12:56:57
拆分字符串,反转数组,然后拉出第二个成员
$list = @(
"abc.xyz.me.com",
"def.me.com",
"ghi.sub.new.com",
"jkl.sup.old.com"
)
$List | ForEach-Object {
[Array]::Reverse(($Arr = $_.Split(".")))
$TLD, $SLD, $Null = $Arr
$TLD # You're top level domain
$SLD # The second level domain
# The rest of the values after those two get sent to null land
}发布于 2017-06-01 13:26:59
下面是一个解决方案,它将完整父域的唯一列表放入名为$ParentDomains的变量中
$Domains = 'abc.xyz.me.com', 'def.me.com', 'ghi.sub.new.com', 'jkl.sup.old.com'
$ParentDomains = $Domains | ForEach-Object {
$Domain = $_.Split('.')
$Domain[-2]+'.'+$Domain[-1]
} | Get-Unique
$ParentDomains说明:
ForEach-Object遍历域列表。循环中的每个域由“.”上的字符串$_.[],以获取每个数组中倒数第二个[-2]和最后一个[-1]项,并将它们输出为以‘.’分隔的新字符串。Get-Unique以删除重复项。https://stackoverflow.com/questions/44298446
复制相似问题