gpt4 book ai didi

regex - 选择字符串到grep,但只返回唯一的组

转载 作者:行者123 更新时间:2023-12-04 03:05:27 25 4
gpt4 key购买 nike

我有一个包含很长行的文本文件。我需要每一行的一条信息,并且需要查看唯一值。我最初的想法是使用Select-String并使用捕获组指定一个正则表达式。我看过其他几篇文章,但都没用。这是快速而肮脏的C#等效项:

var text = File.ReadAllText(@"path\File.txt");
var r = new Regex("Path=\"(.*?)\"");
var matches = r.Matches(text);

var h = new HashSet<string>();

foreach(Match match in matches)
{
h.Add(match.Groups[1].Value);
}

foreach (var s in h)
{
Console.WriteLine(s);
}

如何在PowerShell中执行此操作?

更新:

测试答案,我意识到还有一个额外的要求。每个源行可以有多个匹配项。例子:

路径=“一个”路径=“两个”
路径=“两个”路径=“三个”

结果应为:



最佳答案

select-string -path <filepath> -pattern 'Path=\"(.*?)\"' -allmatches  |
foreach-object {$_.matches} |
foreach-object {$_.groups[1].value} |
Select-Object -Unique

关于regex - 选择字符串到grep,但只返回唯一的组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6652762/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com