我有一个日志文件,格式为CSV,没有标题.第一列基本上是记录问题的唯一标识符.对于相同的问题标识符,可能存在具有不同细节的多个行.我想删除第一列重复的行,因为我此时不需要其他数据.
我现在对PowerShell有相当基本的了解,所以我确信有一些简单的我不知道.
我很抱歉,如果这是重复的,但我可以找到问题来回答问题的某些部分,但不是整个问题.
到目前为止,我最好的猜测是:
Import-Csv $outFile | % { Select-Object -Index 1 -Unique } | Out-File $outFile -Append
但这给了我错误:
Import-Csv:成员"LB"已经存在.在C:\ Users\jnurczyk\Desktop\Scratch\POImport\getPOImport.ps1:6 char:1 + Import-Csv $ outFile | %{Select-Object -InputObject $ _ -Index 1 -Unique} | Out ... + ~~~~~~~~~~~~~~~~~~ + CategoryInfo:NotSpecified :( :) [Import-Csv],ExtendedTypeSystemException + FullyQualifiedErrorId:AlreadyPresentPSMemberInfoInternalCollectionAdd,Microsoft.PowerShell.Commands. ImportCsvCommand
Benjamin Hub.. 13
由于您的数据没有标头,因此您需要在Import-Csv
cmdlet中指定标头.然后,要使用第一列仅选择唯一记录,则需要在Select-Object
cmdlet中指定该记录.见下面的代码:
Import-Csv $outFile -Header A,B,C | Select-Object -Unique A
为了澄清,我的示例中的标题是A,B和C.如果您知道有多少列,则此方法有效.如果标题太少,则删除列.如果您有太多标题,那么它们将变为空字段.