我的文本文件格式类似于以下内容:
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
答案 0 :(得分: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
答案 1 :(得分: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