只要有在水果名稱沒有空格,那麼你可以用空格分隔符爲讀取文件爲CSV。然後使用Group-Object
和Add-Member
合併它們以動態地添加x個月。例如:
Import-Csv -Path $InSort -Delimiter " " |
#Group all records per fruit
Group-Object Fruit |
#Sort by fruitname
Sort-Object Name |
#Process each group (fruit) to merge the rows
ForEach-Object {
#Create object (row) per fruit
$obj = New-Object -TypeName psobject -Property @{
Fruit = $_.Name
}
#For each record (month), add amount column
$_.Group | ForEach-Object {
#Turn month-value into TitleCase (first letter uppercase)
$month = (Get-Culture).TextInfo.ToTitleCase($_.Month)
#Add amount-column per record (month)
Add-Member -InputObject $obj -MemberType NoteProperty -Name "$($Month)Amount" -Value $_.Amount
}
#Output new objects
$obj
} | Export-CSV -Path newfile.csv -NoTypeInformation -Delimiter " "
輸出:
Fruit JanAmount FebAmount
----- --------- ---------
1apple 10 20
2banana 50 95
3blueberry 20 50
4mango 30 80
所以有在原始數據'Fruit'和數值之間沒有空間?和行之間多餘的空白? – 4c74356b41
這看起來像家庭作業,如果你顯示你的代碼甚至是嘗試它,那就沒關係。 – LotPings
代碼:get-content $ InSort |排序水果 (這裏$ insort是我的輸入文件,我排序第1列,即水果) 我們可以採取選項卡或修改它,作爲demiliter – PerlBatch