目前我有一个如下所示的自定义列表:
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"基于"指标"标记。我没有运气搞清楚这一点。
答案 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
})
}