Powershell - 自定义对象中的线条组合

时间:2016-07-15 14:28:18

标签: sorting powershell

目前我有一个如下所示的自定义列表:

ItemPath ItemName LineNumber Indicator  Text
-------- -------- ---------- ---------- ------------
C:\      Test.txt 10         Reference  Hello World!
C:\      Test.txt 10         Difference Hell0 W0rld!

我想对列表进行排序或重新组织,如下所示:

ItemPath ItemName LineNumber DiffText     RefText
-------- -------- ---------- ------------ ------------
C:\      Test.txt 10         Hello World! Hell0 W0rld!    

基本上我希望行号连接的行的值为" text"基于"指标"标记。我没有运气搞清楚这一点。

1 个答案:

答案 0 :(得分:1)

使用https://jsfiddle.net/dkrct5ko/按路径,名称和行号对对象进行分组,然后将这些对组合成一个对象:

$pairs = $allComparisons |Group-Object -Property ItemPath,ItemName,LineNumber |ForEach-Object {

    # Grab the two objects in the group
    $Difference,$Reference = $_.Group |Sort-Object Indicator

    # Create a new object with Text properties from each
    New-Object psobject -Property $([ordered]@{
        ItemPath   = $Reference.ItemPath
        ItemName   = $Reference.ItemName
        LineNumber = $Reference.LineNumber
        DiffText   = $Difference.Text
        RefText    = $Reference.Text
    })
}