对此非常新,所以任何帮助都将不胜感激。我有一个CSV文件,我需要查找并删除特定列中具有重复ID的列。见下文:
CSV的当前状态
Fish1,123456,123456
Fish2,234567,234567
Fish1,999999,999999
Fish2,234567,234567
CS的需要状态
Fish1,123456,123456
Fish2,234567,234567
基本上,无论第2列和第3列中的数据如何,我都需要删除第1列中所有重复的记录。任何帮助都将非常感谢。谢谢。
答案 0 :(得分:6)
使用Sort-Object CmdLet确保没有重复项。
Get-Content .\csvfile1.csv |
ConvertFrom-Csv -Header "Column1", "Column2", "Column3" |
Sort -Unique -Property Column1 |
% {"{0},{1},{2}" -f $_.Column1, $_.Column2, $_.Column3} |
Set-Content csvfile2.csv
答案 1 :(得分:1)
您需要使用哈希表来跟踪您已经看过的行:
$seen = @{ }
Get-Content -Raw -Path my.csv |
ConvertFrom-Csv -Header 'Column1','Column2','Column3' |
Where-Object { -not $seen.ContainsKey( $_.Column1 ) ; $seen[$_.Column1] = $true; }