1

我有一个类似于以下格式的文本文件:

Description1:        Data-123<br>
Description2:        Data-ABC<br>
Description3:        Data-789<br>
Description4:        Data-EFG<br>
Description5:        Data-XYZ<br>

Description1:        Data-123<br>
Description2:        Data-ABC<br>
Description3:        Data-789<br>
Description4:        Data-EFG<br>
Description5:        Data-XYZ<br>

Description1:        Data-123<br>
Description2:        Data-ABC<br>
Description3:        Data-789<br>
Description4:        Data-EFG<br>
Description5:        Data-584<br>

我需要 PowerShell 将每个组(5 行数据)作为一个整体进行比较并删除任何重复的组,只留下唯一的数据组。我可以使用下面的代码删除单个重复行,但比较每个组都没有运气。

get-content TextFile.txt | sort-object | get-unique > NewTextFile.txt
4

2 回答 2

0

也许这可以工作,您需要根据最后一行代码的结果创建输出文件,无论如何我不做解释,因为您没有向我们展示您到目前为止的任何代码。

$a = gc mylist.txt

$b = [string]::Empty
$c = @()

$a | % {if ( $_ -ne [string]::Empty ) 
            { $b += "$_`n"  } 
        else 
            { $c += $b
              $b = [string]::Empty 
            }   
}    
$c += $b    
$c | select -Unique | out-file .\mynew.txt
于 2013-05-31T19:48:07.857 回答
0

将文件内容拆分为双换行符(应匹配空行之前的行尾+空行之后的空行),拆分返回的每个对象(删除空行),然后将其重新加入,添加新的行并将结果写入新文件。

(Get-Content TextFile.txt | Out-String) -split "`r`n`r`n" | ForEach-Object{
    ($_.Split("`r`n",[System.StringSplitOptions]::RemoveEmptyEntries) -join "`r`n") + "`n"
} | Select-Object -Unique | Out-File NewTextFile.txt
于 2013-06-01T08:50:00.060 回答