【问题标题】:Extracting data from csv files using powershell sort and group使用 powershell 排序和分组从 csv 文件中提取数据
【发布时间】:2019-10-23 21:35:28
【问题描述】:

我的目标是单独输出每个 Group 对象,但按 Start_Order 的顺序。从 Count 中可以看到同一个 Server_Name 下有多个对象。

我现在的代码正在将所有内容打包在一起。

输出应该是:

Server_Name             Service_Name
USOHCLIENT901             DISP01   #organized by Start_Order, Start_Order =1
                          DISP03   #Start_Order =2
                          DISP05   #Start_Order =3 
$Sourcefile = "C:\Users\StartF.csv"

$StartProperties  = (Import-Csv $Sourcefile)  | select Ava_Zone,Environment,Server_Name,
                                                Purpose,Service_Name, Start_Order, Start_Flag, 
                                                Start_Wait
# $StartProperties

$StartProperties | Group-Object -Property Server_Name | Sort-Object -Property {$_Start_Order}

Count Name                      Group                                          
----- ----                      -----                                          
    1 USOHCLIENT901             {@{Ava_Zone=us-east-2a; Environment=DEV; Ser...
   13 DEFRCLIENT801             {@{Ava_Zone=de-central-1a; Environment=TEST;...
   12 APSGCOGAPP803             {@{Ava_Zone=ap-southeast-1a; Environment=TES...
   12 APSGCOGAPP802             {@{Ava_Zone=ap-southeast-1b; Environment=TES...
   12 APSGCOGAPP801             {@{Ava_Zone=ap-southeast-1a; Environment=TES...
    1 APSGCLIENT801             {@{Ava_Zone=ap-southeast-1a; Environment=TES...
   12 USOHCOGAPP803             {@{Ava_Zone=us-east-2a; Environment=TEST; Se...
   12 USOHCOGAPP802             {@{Ava_Zone=us-east-2a; Environment=TEST; Se...
   12 USOHCOGAPP801             {@{Ava_Zone=us-east-2a; Environment=TEST; Se...
    1 USOHCLIENT801             {@{Ava_Zone=us-east-2a; Environment=TEST; Se...
    1                           {@{Ava_Zone=--; Environment=; Server_Name=; ...
   12 DEFRCLIENT903             {@{Ava_Zone=de-central-1a; Environment=DEV; ...
   12 DEFRCOGAPP902             {@{Ava_Zone=de-central-1b; Environment=DEV; ...
   11 DEFRCOGAPP901             {@{Ava_Zone=de-central-1a; Environment=DEV; ...
    2 DEFRCLIENT901             {@{Ava_Zone=de-central-1a; Environment=DEV; ...
   12 APSGCOGAPP903             {@{Ava_Zone=ap-southeast-1a; Environment=DEV...
   12 APSGCOGAPP902             {@{Ava_Zone=ap-southeast-1b; Environment=DEV...
   12 APSGCOGAPP901             {@{Ava_Zone=ap-southeast-1a; Environment=DEV...
    1 APSGCLIENT901             {@{Ava_Zone=ap-southeast-1a; Environment=DEV...
   12 USOHCOGAPP903             {@{Ava_Zone=us-east-2a; Environment=DEV; Ser...
   12 USOHCOGAPP902             {@{Ava_Zone=us-east-2a; Environment=DEV; Ser...
   12 USOHCOGAPP901             {@{Ava_Zone=us-east-2a; Environment=DEV; Ser...
   12 DEFRCOGAPP802             {@{Ava_Zone=de-central-1b; Environment=TEST;...
   12 DEFRCOGAPP803             {@{Ava_Zone=de-central-1a; Environment=TEST;...

PowerShell Output

【问题讨论】:

    标签: powershell loops csv


    【解决方案1】:

    看看下面的代码。它会做你正在寻找的东西,但适用于所有正在运行的进程。在Group-Object 之后,您可以使用Select-Object 和自定义创建的属性@{Name = 'Id'; Expression = {($_.Group.Id | Sort-Object) -join "rn"}} 直接选择您需要的属性,该属性将从Group-Object 组中收集数据并对其进行排序。

    $Processes = Get-Process
    $Processes | Group-Object -Property 'ProcessName' | Select-Object -Property 'Name', @{Name = 'Id'; Expression = {($_.Group.Id | Sort-Object) -join "`r`n"}} | Format-List
    

    【讨论】:

      猜你喜欢
      • 2018-12-10
      • 1970-01-01
      • 2019-03-03
      • 1970-01-01
      • 1970-01-01
      • 2020-04-07
      • 1970-01-01
      • 2017-07-24
      • 1970-01-01
      相关资源
      最近更新 更多