【问题标题】:Split Array Value keep first element拆分数组值保留第一个元素
【发布时间】:2018-01-02 05:55:05
【问题描述】:

我正在尝试使用以下代码从过滤后的 JSON 中仅提取 IP:

$curl = Invoke-WebRequest -Method Get -Uri "http://urltojson.com/file.json"
$curl2 = $curl.Content.Replace("Script", "Script_").Replace("iphone", "iphone_").Replace("android", "android_").Replace("ipad","ipad_") |
         ConvertFrom-Json
$curl3 = $curl2 | Where-Object {$_.Name -eq "/Common/cloudfront_nets"} |
         Select-Object -ExpandProperty data
$curl3
[System.Collections.ArrayList]$curl3[0] = $curl3
$curl3[1]

返回以下内容

13.59.250.0 255.255.255.192:区域:us-east-2-service:CLOUDFRONT 52.57.254.0 255.255.255.0:区域:eu-central-1-service:CLOUDFRONT 54.182.0.0 255.255.0.0:区域:全球服务:CLOUDFRONT 52.212.248.0 255.255.255.192:区域:eu-west-1-service:CLOUDFRONT 205.251.250.0 255.255.254.0:区域:全球服务:CLOUDFRONT 35.162.63.192 255.255.255.192:区域:us-west-2-service:CLOUDFRONT 13.32.0.0 255.254.0.0:区域:全球服务:CLOUDFRONT 205.251.254.0 255.255.255.0:区域:全球服务:CLOUDFRONT

我正在努力简单地输出 IP(没有子网掩码)。

有人可以帮忙吗?

【问题讨论】:

  • 我怀疑$curl3 的结构不是你想象的那样。 $curl3 | Get-Member 的输出是什么?

标签: json windows powershell scripting


【解决方案1】:

您可以使用$myArray -split 将最后一个$curl3[1] 拆分为空格,然后只需选择第一个数组值。

例如,($curl3[1] -split " ")[0] 将只为您提供该字符串中的 IP 地址。

【讨论】:

  • 感谢您的回复。这只是返回 @{13.59.250.0
猜你喜欢
  • 2015-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-27
相关资源
最近更新 更多