gpt4 book ai didi

arrays - 使用Powershell从数组中的字符串中提取值

转载 作者:行者123 更新时间:2023-12-03 00:47:02 27 4
gpt4 key购买 nike

我在尝试从数组中提取特定值时遇到问题。我有一个包含40010行的数组,其中每行是一串用管道分隔的值(每行64个)。

我需要从每行中提取值7、4、22、23、24、52和62并将其写入新数组,以便最终得到一个新数组,其中包含40010行,每行中只有7个管道分隔值(可以用逗号分隔)行。

我已经看过拆分了,似乎无法适应甚至接近我所需要的东西。

我也愿意从文件中执行此操作,因为我目前正在使用$data = (Get-content $statement_file|Select-String "^01")
如果我可以添加到该命令以在输入上进行拆分,那么我只有一个数组,不需要中间数组会更好。

我知道如果我在Linux中,可以很容易地用AWK进行拆分,但是我对Powershell还是很陌生,所以希望您提出任何建议

最佳答案

# create an array of header columns (assuming your pipe separated file doesn't have headers)
$header = 1..64 | ForEach-Object { "h$_" }

# import the file as 'csv' but with pipes as separators, use the above header, then select columns 7,4,22,23,24,52,62
# edit 1: then only return rows that start with 01
# edit 2: then join these into a pipe separated string
$smallerArray = $statement_file |
Import-Csv -Delimiter '|' -Header $header |
Where-Object { $_.h1.StartsWith('01') } |
Select-Object @{Name="piped"; Expression={ @($_.h7,$_.h4,$_.h22,$_.h23,$_.h24,$_.h52,$_.h62) -join '|' }} |
Select-Object -ExpandProperty piped

关于arrays - 使用Powershell从数组中的字符串中提取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42248799/

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