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

标签 arrays powershell

我在尝试从数组中提取特定值时遇到问题。我有一个包含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/

相关文章:

powershell - 邮件正文格式及修改

java - 使用 jsonpath 表达式的数组大小 - Stefan Goessner JsonPath

c - 读入一个包含 5 行的文本文件,并将其填充到 C 中的二维数组中

python - 反向求值数组元素

azure - 为什么我在连接到服务后收到 Connect-AzureAD 错误?

mysql - 在powershell中执行sql存储过程时参数值中有空格

python - 打印 numpy 数组中所有列都满足特定条件的行?

php - 尝试使用数组值作为 SQL 插入值

PowerShell DSC - 由于节点名称为空,因此跳过节点处理

powershell - 为什么在 Powershell switch 语句中对变量进行奇怪的赋值?