gpt4 book ai didi

powershell - 如何从给定的 powershell 数组中获取第一列?

转载 作者:行者123 更新时间:2023-12-02 23:07:40 25 4
gpt4 key购买 nike

有一个命令执行并给出以下输出

Customer ID Client Name Computer Name Computer Brand
123 user1 127.0.0.1 lenovo
1 user2 127.0.0.2 apple
86 user3 127.0.0.1 dell
21 user4 127.0.0.4 apple

我想要获取使用 Computer Brand apple 用户的客户 ID。输出应如下所示,以便我可以对这些 ID 进行进一步操作:

1
21

我尝试首先使用以下命令选择带有“apple”的用户:

$output | Select-String -pattern 'apple'

但是它只会打印带有“apple”的用户,而不是第一行,这使我很难进一步处理。

更新

不知道以下内容是否有帮助。

PS> $output.GetType();

IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Object[] System.Array

最佳答案

您缺少 cmdlet 的基本 PowerShell 概念 Where-ObjectSelect-Object

#simulating $output
$output = @"
Customer ID,Client Name,Computer Name,Computer Brand
123,user1,127.0.0.1,lenovo
1,user2,127.0.0.2,apple
86,user3,127.0.0.1,dell
21,user4,127.0.0.4,apple
"@ -split '\r?\n' | ConvertFrom-Csv

$output | Where 'Computer Brand' -eq 'apple' | Select-Object 'Customer ID'

示例输出:

Customer ID
-----------
1
21

编辑以防万一您的输出不是对象而是纯文本,请尝试此

$output -replace '\s{2,}',',' | Select -skip 1 | 
Convertfrom-Csv -Header 'Customer ID','Client Name','Computer Name','Computer Brand' |
Where 'Computer Brand' -eq 'apple' | Select-Object 'Customer ID'

或更简单

($output | sls '^(\d+).*apple').Matches|% {$_.groups[1].value}

关于powershell - 如何从给定的 powershell 数组中获取第一列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57508154/

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