首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Powershell使用特殊字符修剪文本

问Powershell使用特殊字符修剪文本
EN

Stack Overflow用户
提问于 2017-06-01 12:14:00
回答 3查看 161关注 0票数 1

我有一个在FQDN中具有域和子域的主机名列表。我只需要从它获取父(根)域名。

我已经尝试了substring,但没有成功。

代码语言:javascript
复制
abc.xyz.me.com
def.me.com
ghi.sub.new.com
jkl.sup.old.com

这些是一些例子,从列表中,我想获得根域(我,新的,旧的)。

EN

回答 3

Stack Overflow用户

发布于 2017-06-01 12:49:17

最简单的方法是使用split并获得索引-2

代码语言:javascript
复制
$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])
}

你可能想做更多的事情,而不仅仅是写到主机上,但这应该会给你一个想法。

票数 1
EN

Stack Overflow用户

发布于 2017-06-01 12:56:57

拆分字符串,反转数组,然后拉出第二个成员

代码语言:javascript
复制
$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
}
票数 1
EN

Stack Overflow用户

发布于 2017-06-01 13:26:59

下面是一个解决方案,它将完整父域的唯一列表放入名为$ParentDomains的变量中

代码语言:javascript
复制
$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遍历域列表。循环中的每个域由“.”上的字符串$_.
  • Splits表示。character
  • Uses索引指示符[],以获取每个数组中倒数第二个[-2]和最后一个[-1]项,并将它们输出为以‘.’分隔的新字符串。
  • 通过管道将结果传送到Get-Unique以删除重复项。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44298446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档