【问题标题】:How to cut the first field in powershell which is in double quotes如何在powershell中剪切双引号中的第一个字段
【发布时间】:2019-08-05 18:00:53
【问题描述】:

我的变量中有一些数据,那么如何剪切第一个字段并将输出作为 powershell 中的第二个字段。

PS D:\Testing_PowerShell_Script> $content(显示变量内容)

"title": "myname",
"title": "othername", 

(这是内容变量所具有的数据。)

现在我想剪切“标题”:归档并仅将输出作为 myname 而不是 powershell 中的双引号和逗号。请帮忙解决这个问题

【问题讨论】:

  • 对于您的输入,以下将做Testing_Powershell_Script | % {($_ -split '"')[3]}
  • 这看起来像是原来的 JSON 格式。如果是这样,您可能会发现先使用ConvertFrom-Json 转换数据比尝试像这样操作小sn-ps 更容易。
  • 没问题,但请阅读@boxdog 的评论!
  • @Lieven。我可以在没有双引号的情况下获得第二个字段..

标签: powershell powershell-5.0


【解决方案1】:

您可以使用带有Select-String 的简单正则表达式模式来获取"title": 后面引号中的所有内容:

$titles = $content |Select-String '"title": "([^"]+)"' -AllMatches |Select-Object -Expand Matches |ForEach-Object {$_.Groups[1].Value}

$titles 现在是两个字符串 mynameothername 的数组

【讨论】:

    【解决方案2】:

    试试这个:你可以直接获取不带引号的值列表

    $t = '"title": "myname",
    "qqqq": "othername",'
    $t -split "," | %{ ($_ -split ":")[1] -replace "`"","" }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-15
      • 2020-05-21
      • 2011-08-22
      • 1970-01-01
      • 2021-02-21
      • 1970-01-01
      相关资源
      最近更新 更多