gpt4 book ai didi

powershell - Select-String输出给出整个对象,并且不响应过滤器

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

我已经在Unix / Linux上进行了一些编程,但是最近PowerShell在我的工作中更加有用。但是缺少grep令我发疯。有人可以解释这种现象吗?

我试图将今天的IOTA值返回为我可以Write-Output的值。

$webpage = Invoke-WebRequest -Uri https://coinmarketcap.com/currencies/iota/
$filtered = $webpage.ParsedHtml.body.innerText

这给了我所有我需要的信息,但是它需要更多的过滤。
$filtered | Select-String "IOTA"

这为我提供了 $filtered中的所有信息,以某种方式无法选择该字符串。但是,如果我这样做,它将起作用:
$filtered > filter.txt
Get-Content filter.txt | Select-String "IOTA"

我一直在尝试在网上寻找答案,我发现最接近的是它可能将 $filtered处理为对象,而不是字符串。如果我检查,它说这是一个字符串。

PS> $ filtered.GetType()

IsPublic IsSerial名称BaseType
-------- -------- ---- --------
True True String System.Object

这不是我第一次遇到 Select-String失败。我究竟做错了什么?

最佳答案

$filtered是一个很大的字符串。如果将$filtered保存到文件中,然后使用get-content读取它,则Get-Content cmdlet将以换行符分隔的字符串数组形式返回文件的内容。

但是,由于html是结构化的,因此建议您直接获取您感兴趣的元素,如下所示:$webpage.parsedhtml.getElementById("quote_price").innerText
返回:
3.45 USD

关于powershell - Select-String输出给出整个对象,并且不响应过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48002794/

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