PowerShell 基于日期列对数据集实现行去重的实现方法
PowerShell按指定列去重最优实现方案
你可以直接用Group-Object按日期列分组后取每组的第一条数据完成去重,不需要手动拆分保存临时的日期列数据,实现代码如下:
# 读取源数据文件,按第一列日期分组后每组返回第一条记录 Get-Content "你的源数据文件路径.txt" | # 以每行第一个空格分隔的字段为分组键(即日期列) Group-Object { $_.Split(" ", [System.StringSplitOptions]::RemoveEmptyEntries)[0] } | # 取每个分组的第一条记录 ForEach-Object { $_.Group[0] }
代码说明:
- 如果你需要保存去重后的结果,只需要在代码末尾追加
| Out-File "去重后结果.txt"即可 - 如果同日期你需要保留最后一条记录,将
$_.Group[0]修改为$_.Group[-1]即可 - 之前直接用
Get-Unique没有生效的原因是该命令默认比对整行内容是否完全一致,你同日期的行时间字段不同,整行内容不匹配,所以无法实现按单列去重的效果。
内容的提问来源于stack exchange,提问作者Shahar
相关产品推荐
相关产品推荐

