【问题标题】:Powershell - extract values from lines with a "template"Powershell - 从带有“模板”的行中提取值
【发布时间】:2020-01-08 16:26:35
【问题描述】:

我有一个文件,其中包含与以下模板匹配的行:

this folder <FolderName> permission needs to be removed for user NT User:<SID>
this folder <FolderName1> permission needs to be removed for user NT User:<SID2>

&lt;FolderName&gt;&lt;SID&gt; 是我试图提取的值。

&lt;FolderName&gt; 可以包含任意数量的 UTF8 字符。

如何解析每一行的值?我被困住了——很确定正则表达式是前进的方向,但我不知所措。

【问题讨论】:

  • 您尝试过什么,您尝试过什么失败了?理想情况下,您应该提供一个minimal reproducible example 来说明您的尝试,并包含有关它如何失败的具体信息,以及错误消息和/或错误输出。 Stack Overflow 不是代码编写服务;最好的问题是那些提供有用信息的问题,以便回答的人可以指导您设计自己的正确答案。请参阅How to Ask 一个好问题。
  • @JeffZeitlin - 我的问题是我完全被卡住了。我知道如何得到匹配的东西,但不知道匹配的东西附近的东西。这是一种“我想不出任何办法”的情况:(
  • 这就是为什么我(和其他人)会问你尝试了什么以及它是如何失败的 - 它向我们展示了你的思维过程,并为我们提供了如何解决的线索如果需要,重定向你——这个想法不仅仅是给你快速而肮脏的代码(当他说“快速而肮脏”时@ShamusBerube 撒谎;这实际上是一个非常可行的解决方案),而是“教”你如何解决问题,以便您可以概括解决方案。

标签: regex string powershell parsing


【解决方案1】:

又快又脏:

Get-Content "Filename.txt" | Foreach-Object {
    $values = $_.Replace('this folder','').Replace(''permission needs to be removed for user NT User','').Split(':')
    $folder = $values[0]
    $sid = $values[1]
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-07
    相关资源
    最近更新 更多