如何通过PowerShell正则从日志文件中提取版本号v1.0.2
PowerShell提取版本号方法
针对你提供的日志内容:
2022-09-08T10:52:38.0802281Z Downloading git::ssh://git@ssh.dev.azure.com/v3/basf-terraform/Terraform_modules/azure_private_endpoint?ref=v1.0.2 for resuc_dls1_pep1...
这里提供几种适合新手的PowerShell提取v1.0.2的方法:
方法1:用Select-String匹配正则
直接读取日志文件后匹配提取:
Get-Content .\你的日志文件名.txt | Select-String -Pattern 'ref=(\w+\.\w+\.\w+)' | ForEach-Object { $_.Matches.Groups[1].Value }
解释:Select-String通过正则ref=(\w+\.\w+\.\w+)定位ref=后的版本号,Groups[1]就是捕获到的目标内容。
方法2:拆分字符串分步提取
通过拆分字符逐步筛选:
# 读取文件内容到变量 $logLine = Get-Content .\你的日志文件名.txt # 按?ref=拆分取后半段 $refSegment = $logLine -split '\?ref=' | Select-Object -Index 1 # 按空格拆分取第一段就是版本号 $version = $refSegment -split ' ' | Select-Object -Index 0 # 输出结果 $version
方法3:正则直接匹配单条文本
如果直接处理单条日志字符串:
$logText = '2022-09-08T10:52:38.0802281Z Downloading git::ssh://git@ssh.dev.azure.com/v3/basf-terraform/Terraform_modules/azure_private_endpoint?ref=v1.0.2 for resuc_dls1_pep1...' [regex]::Match($logText, 'ref=(v\d+\.\d+\.\d+)').Groups[1].Value
解释:用正则精准匹配ref=开头的版本格式,直接提取捕获的版本内容。
内容的提问来源于stack exchange,提问作者Al Jubaiar
相关产品推荐
相关产品推荐

