如何用PowerShell提取输出中指定单词后的下一个数值
提取Chia钱包Spendable数值的PowerShell实现方法
给你几个实用的PowerShell实现方式:
方法1:利用Select-String的正则捕获组
直接在匹配时用正则捕获目标数值,一步到位:
(chia wallet show -w standard_wallet | Select-String -Pattern 'Spendable:\s+(\d+\.\d+)').Matches.Groups[1].Value
原理:正则表达式里Spendable:\s+匹配"Spendable:"和后续的所有空格,(\d+\.\d+)专门捕获小数点格式的数值,通过Groups[1]直接提取捕获到的内容。
方法2:字符串分割法
通过两次分割操作提取数值,逻辑更直观:
# 先获取包含Spendable的目标行 $targetLine = chia wallet show -w standard_wallet | Select-String -Pattern "Spendable:" # 按冒号分割,取后半段;去掉首尾空格后再按空格分割,取第一个元素 $spendableAmount = ($targetLine -split ':')[1].Trim().Split(' ')[0] # 输出结果 $spendableAmount
方法3:遍历行匹配正则
逐行检查输出内容,匹配到目标行后提取数值:
chia wallet show -w standard_wallet | ForEach-Object { if ($_ -match 'Spendable:\s+(\d+\.\d+)') { # 输出捕获到的数值 $matches[1] } }
内容的提问来源于stack exchange,提问作者God of Money
相关产品推荐
相关产品推荐

