【问题标题】:PowerShell sort CSV with multiple itemsPowerShell 对包含多个项目的 CSV 进行排序
【发布时间】:2015-05-20 13:13:34
【问题描述】:

我无法正确排序 CSV。我有以下格式的数据:

文件.csv:

Name,Application
user1,app1
user1,app1
user2,app1
user2,app2

...

我能够获得具有多个 app1、多个 app2 的用户列表,但我不知道如何获取具有 app1 和 app2 的用户列表。

    $users = Import-Csv file.csv
    $users | ? {$_.Application -eq "app1" | Group Name | ? {$_.Count -gt 1} |
 % {$_ | select -ExpandProperty group | select -first 1}

    $users | ? {$_.Application -eq "app2" | Group Name | ? {$_.Count -gt 1} |
 % {$_ | select -ExpandProperty group | select -first 1}

我什至不确定从哪里开始将两者结合起来。

【问题讨论】:

    标签: powershell


    【解决方案1】:

    按用户名分组并检查每个组是否包含每个应用程序的条目:

    $UsersWithBothApps = $users | Group-Object -Property Name | ForEach-Object {
        $Apps = $_.Group | Select-Object -ExpandProperty Application
        if($Apps -contains "app1" -and $Apps -contains "app2"){
            $_.Name
        }
    }
    

    【讨论】:

      【解决方案2】:

      另一种方法:

      #requires v4.0
      $app1='app1'
      $app2='app2'
      
      $users | 
          group name | 
          ?{ $_.group.application -eq $app1 } |
          ?{ $_.group.application -eq $app2 } |
          % name
      

      【讨论】:

        猜你喜欢
        • 2017-10-30
        • 1970-01-01
        • 2021-08-22
        • 2021-09-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-03
        • 1970-01-01
        相关资源
        最近更新 更多