对 csv 重复列进行分组
Group a csv duplicate column
我对分组和导出具有日常机器状态重复值的 csv 列感到有点困惑。每台机器将只有两个重复值。
hostname status
ABC up
DEF up
GHI down
ABC down
DEF up
GHI up
我正在寻找
hostname status_morning status_evening
ABC up down
DEF up up
GHI down up
$groups = import-csv .\machine-status.csv | group-object hostname
foreach($group in $groups){
Select-Object @{Name='Hostname' ;Expression={$_.Values[0]}},
@{Name='status_morning';Expression={$_.Values[1]}},
@{Name='status_evening' ;Expression={$_.Values[2]}}
}
肯定还有其他简单的方法,但是下面的代码有效。
$csv = Import-csv C:\PS\stack.csv | Group-Object 'HostName'
$csv | Select-Object 'Name',@{ n='Morning_status';e={$_.Group.status[0]}},@{ n='Evening_status';e={$_.Group.status[1]}}
我对分组和导出具有日常机器状态重复值的 csv 列感到有点困惑。每台机器将只有两个重复值。
hostname status
ABC up
DEF up
GHI down
ABC down
DEF up
GHI up
我正在寻找
hostname status_morning status_evening
ABC up down
DEF up up
GHI down up
$groups = import-csv .\machine-status.csv | group-object hostname
foreach($group in $groups){
Select-Object @{Name='Hostname' ;Expression={$_.Values[0]}},
@{Name='status_morning';Expression={$_.Values[1]}},
@{Name='status_evening' ;Expression={$_.Values[2]}}
}
肯定还有其他简单的方法,但是下面的代码有效。
$csv = Import-csv C:\PS\stack.csv | Group-Object 'HostName'
$csv | Select-Object 'Name',@{ n='Morning_status';e={$_.Group.status[0]}},@{ n='Evening_status';e={$_.Group.status[1]}}