Puppet 6 如何拆分或截断域名

Puppet 6 how to split or truncate domian name

我有很多这样的域: 'us1.domain.com', 'us2.domain.com', 'us3.domain.com', 'anotherdomain.com', 'yet.third.com'

我会将这些域名拆分或截断为:

domain.com
anotherdomain.com
third.com

有人可以提示我吗?

这个新数组将用于证书文件名。

提前致谢

你可以这样解决这个问题:

$array = [
  'us1.domain.com', 'us2.domain.com', 'us3.domain.com',
  'anotherdomain.com', 'yet.third.com'
]
notice($array.map |$x| { $y=$x.split(/\./); [$y[-2], $y[-1]].join('.') }.unique)

测试:

▶ puppet apply test.pp 
Notice: Scope(Class[main]): [domain.com, anotherdomain.com, third.com]
Notice: Compiled catalog for 192-168-1-103.tpgi.com.au in environment production in 0.05 seconds
Notice: Applied catalog in 0.01 seconds

那里的主要见解:

  • 您可以使用拆分函数拆分句点上的每个元素。
  • 您可以使用 $arr[-1] 和 $arr[-2] 获取数组的最后一个和倒数第二个元素。
  • 您可以使用连接功能将它们重新连接起来。
  • 您可以使用映射函数将列表转换为新列表。
  • 您可以使用唯一功能删除重复项。