gpt4 book ai didi

powershell - 如何以逗号分隔的格式提取键值对的值?

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

我下载了一个包含以下格式数据的 txt 文件:

"data1":111,"data2":22,"data3":3,"data4":4444444, and so on.

我需要提取数据:

$data1 = 111
$data2 = 22
$data3 = 3
...and so on.

我怎样才能做到这一点?

最佳答案

假设该文件与您所描述的完全一样,则您要提取的数据以逗号分隔。您可以使用 Get-Content 检索文件内容cmdlet。

Get-Content myFile.txt | Out-String  

上面的命令将 Get-Content 的输出传输到单个字符串。否则,如果文件有多行,那么您可能会检索 collection字符串。在这种情况下,最好使用单个字符串,因为您可以根据分隔值将字符串拆分到一个集合中。例如:

PS C:\> $string = '"data1":111,"data2":22,"data3":3,"data4":4444444'
PS C:\> $data = $string.split(",")
PS C:\> $data
"data1":111
"data2":22
"data3":3
"data4":4444444

从那里,您可以通过确定需要删除的内容来将字符串分解为数值。看起来像之前的一切,包括冒号。所以我们想要-替换这些值,如下所示:

# Create an empty array to store the parsed data.
PS C:\> $parsedData = @()
# For each element in the $data array, replace content up to the first colon.
PS C:\> foreach($i in $data) { $parsedData += $i -replace ".*:", "" }
PS C:\> $parsedData
111
22
3
4444444

从那里,将这些数组元素重新分配给您想要的任何变量名称将是微不足道的。您可能想查看about_Comparison_Operators或此博客string manipulation有关解决此类问题的更一般性介绍。


最后,这些类型的键值对非常适合 Hash Table数据结构。当您对 powershell 感觉更舒服时,请务必检查一下。与您提出的解决方案相比,它最终会提供一种更干净的数据处理方式...尽管如果键只是“dataX”,那么简单的数组也可能没问题。

关于powershell - 如何以逗号分隔的格式提取键值对的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18940813/

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