Powershell - 过滤唯一值

Tem*_*ple 21 powershell powershell-2.0

我有一个输入csv文件,其中的列包含类似于以下示例的信息:

805265
995874
805674
984654
332574
339852
Run Code Online (Sandbox Code Playgroud)

我想基于前2个字符将唯一值提取到数组中,因此使用上面的示例我的结果将是:

80,99,98,33

我如何使用PowerShell实现这一目标?

ste*_*tej 22

使用Select-Object和参数-unique:

$values =
'805265',
'995874',
'805674',
'984654',
'332574',
'339852'

$values |
  Foreach-Object { $_.Substring(0,2) } |
  Select-Object -unique
Run Code Online (Sandbox Code Playgroud)

如果需要转换为int,那么只需将其转换为[int]:

$ints =
  $values |
  Foreach-Object { [int]$_.Substring(0,2) } |
  Select-Object -unique
Run Code Online (Sandbox Code Playgroud)


Kei*_*ill 16

我将使用Group-Objectcmdlet:

Import-Csv foo.csv | group {$_.ColumnName.Substring(0, 2)}

Count Name                      Group
----- ----                      -----
    2 80                        {805265, 805674}
    1 99                        {995874}
    1 98                        {984654}
    2 33                        {332574, 339852}