【问题标题】:Alternative way to remove duplicates from CSV other than Sort-Object -unique?除了 Sort-Object -unique 之外,从 CSV 中删除重复项的替代方法?
【发布时间】:2019-03-01 20:22:38
【问题描述】:

我有一个无法解决的错误。当我运行我的脚本获取这段代码时,它错误地删除了唯一值:

import-csv "$LocalPath\A1-$abbrMonth$Year.csv" | 
    where {$_."CustomerName" -match $Customersregex} |
    select "SubmitterID","SubmitterName","JobDate","JobTime",@{Name="Form";Expression={if ($_.FormName -match "Copy"){"C"};if ($_.FormName -match "Letter"){"L"} else {""} }},"TotalDocs",@{Name="AddnPages";Expression={$_.TotalAdditionalPages}},"InputFilename",@{Name="ActualDocs";Expression={[string]([int]$_.RegularDocs + [int]$_.UnqualifiedDocs)}}|
    sort "InputFilename" -Unique |
    export-csv "$LocalPath\A2-$abbrMonth$Year.csv" -NoTypeInformation

它发生在“排序“InputFilename”-Unique”行期间,但是当我将其剪切并逐行执行时它会正常工作,但不是在原始脚本中。

有没有其他方法可以根据列的值删除重复项?我尝试在 Select-Object 语句中使用“-unique”参数,但找不到将其限制为仅一列的方法。

编辑:为了澄清我遇到的问题,我有一个大的会计数据列表。我正在尝试使用“Sort -unique”删除重复的条目。在上面的代码运行之后,有一些不应该的条目丢失了,因为它们是唯一的。我可以将它们隔离在自己的 CSV 中,运行上面的代码并且所有条目都应该存在,但是当我通过上面的代码运行我的主 CSV 文件时(只有那个代码,没有别的)并搜索它们是失踪。 编辑 2: 看起来这是数据文件的问题。好伤心。

【问题讨论】:

    标签: powershell


    【解决方案1】:

    您始终可以对事物进行分组,然后展开组中的第一项。它并不快,但它适用于您正在做的事情。

    import-csv "$LocalPath\A1-$abbrMonth$Year.csv" | 
        where {$_."CustomerName" -match $Customersregex} |
        group InputFilename |
        % { $_.Group[0] } |
        select "SubmitterID","SubmitterName","JobDate","JobTime",@{Name="Form";Expression={if ($_.FormName -match "Copy"){"C"};if ($_.FormName -match "Letter"){"L"} else {""} }},"TotalDocs",@{Name="AddnPages";Expression={$_.TotalAdditionalPages}},"InputFilename",@{Name="ActualDocs";Expression={[string]([int]$_.RegularDocs + [int]$_.UnqualifiedDocs)}}|
        sort "InputFilename" |
        export-csv "$LocalPath\A2-$abbrMonth$Year.csv" -NoTypeInformation
    

    【讨论】:

    • 感谢您的回复。在我的 ISE 中,它告诉我“表达式只允许作为管道的第一个元素”
    • @fudge 抱歉,代码已编辑,但不太正确。现在试试,应该可以了。
    • 这很好用,但事实证明这是数据文件的问题。我以后可能会尝试使用它。
    猜你喜欢
    • 2019-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-05
    • 1970-01-01
    • 2023-01-31
    • 1970-01-01
    • 2015-05-23
    相关资源
    最近更新 更多