我有一个有效的PowerShell脚本可以删除csv文件中的重复项,但它会对数据中的列标题进行排序,这是我不想要的,也无法找到保留列标题的方法。
Get-Content C:\testdata.csv | ConvertFrom-Csv -Header "Column1", "Column2", "Column3", "Column4" | sort -Unique -Property Column1 | % {"{0},{1},{2},{3}" -f $_.Column1, $_.Column2, $_.Column3, $_.Column4} | set-content c:\output.csv
测试数据csv如下:
Name,IDNumber,OtherNumber,UniqueCode Tom,10,133,abcd Tom,10,133,abcd Bill,4,132,efgh Bill,4,132,efgh Bill,4,132,efgh Lefty,3,122,ijkl Lefty,3,122,ijkl Lefty,3,122,ijkl Lefty,3,122,ijkl
有没有办法用Powershell来实现这个目标?
答案 0 :(得分:3)
使用Import-Csv
和Export-Csv
可以更轻松地完成此过程,因为它们是为处理csv文件和标头而构建的。
Import-Csv "C:\testdata.csv" | Sort-Object * -Unique | Export-Csv "c:\output.csv" -NoTypeInformation
答案 1 :(得分:0)
未经测试,但试试这个......
Import-Csv -Path 'C:\path\to\File.csv' |
Select * -Unique |
Export-Csv 'C:\path\to\NewFile.csv' -NoTypeInformation
答案 2 :(得分:0)
您可以使用Select -Skip 1跳过原始标题列:
{{1}}