gpt4 book ai didi

regex - Powershell查找特定模式

转载 作者:行者123 更新时间:2023-12-02 23:12:51 24 4
gpt4 key购买 nike

我试图从文本文件中仅提取我的 JIRA 问题编号,消除重复项。这在 Shell 脚本中很好:

 cat /tmp/jira.txt | grep -oE '^[A-Z]+-[0-9]+' | sort -u

但我想使用 Powershell 并尝试了这个
$Jira_Num=Get-Content /tmp/jira.txt |  Select-String -Pattern '^[A-Z]+-[0-9]+' > "$outputDir\numbers.txt"

但是,这会返回整行,也不会消除重复项。我尝试了正则表达式,但我是 powershell 的新手,不知道如何使用它。有人可以帮忙吗。

示例 Jira.txt 文件
 PRJ-2303 Modified the artifactName
PRJ-2303 Modified comment
JIRA-1034 changed url to tag the prj projects
JIRA-1000 for release 1.1
JIRA-1000 Content modification

预期产出
 PRJ-2303
JIRA-1034
JIRA-1000

最佳答案

应该使用这样的东西:

$Jira_Num = Get-Content /tmp/jira.txt | ForEach-Object { 
if ($_ -match '^([A-Z]+-[0-9]+)') {
$Matches[1]
}
} | Select-Object -Unique
Get-Content逐行读取文件,因此我们可以将其通过管道传输到其他 cmdlet 以处理每一行。
ForEach-Object为管道中的每个项目运行一个命令 block 。所以这里我们使用 -match运算符使用捕获组对行执行正则表达式匹配。如果匹配成功,我们将匹配的组(JIRA 问题 key )发送到管道中。
Select-Object -Unique将比较对象并仅返回唯一的对象。

关于regex - Powershell查找特定模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31753492/

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