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] 获取数组的最后一个和倒数第二个元素。
- 您可以使用连接功能将它们重新连接起来。
- 您可以使用映射函数将列表转换为新列表。
- 您可以使用唯一功能删除重复项。
我有很多这样的域:
'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] 获取数组的最后一个和倒数第二个元素。
- 您可以使用连接功能将它们重新连接起来。
- 您可以使用映射函数将列表转换为新列表。
- 您可以使用唯一功能删除重复项。