【问题标题】:Get Unique Column and Count from CSV file in Powershell从 Powershell 中的 CSV 文件获取唯一列和计数
【发布时间】:2021-01-21 19:17:56
【问题描述】:

我有一个名为 Products.csv 的 CSV 文件

Product_ID,Category
1,A
2,A
3,A
4,B

我想要一个 powershell 脚本,它将向我显示唯一类别以及计数并导出到 CSV。

A,3
B,1

我已使用以下代码提取唯一类别,但无法获取计数:

Import-Csv Products.csv -DeLimiter ","|
Select 'Category' -Unique |
Export-Csv Summary.csv -DeLimiter "," -NoTypeInformation

谁能帮帮我? 谢谢。

【问题讨论】:

  • 计数是什么意思?您的报税表中列出了什么?
  • 请查看Group-Object cmdlet。它可以按任何给定的属性组合对事物进行分组——甚至是计算的属性。结果将包括匹配项目的计数。 [咧嘴]

标签: powershell


【解决方案1】:

您可以使用Group-Object 获取计数。

Import-Csv Products.csv -DeLimiter "," |
    Group-Object Category | Foreach-Object {
        "{0},{1}" -f $_.Name,$_.Count 
    }

如果您想要计数的 CSV 输出,您需要数据的标题。 Group-Object 输出属性 Name 是分组的属性值,Count 是该组中的项目数。

Import-Csv Products.csv -DeLimiter "," |
    Group-Object Category | Select-Object Name,Count |
        Export-Csv Summary.csv -Delimiter ',' -NoType

您可以进一步使用上述代码并使用Select-Object 的计算属性。然后,您可以使用表达式创建自定义命名列和/或值。

Import-Csv Products.csv -DeLimiter "," |
    Group-Object Category |
        Select-Object @{n='Product_ID';e={$_.Name}},Count |
            Export-Csv Summary.csv -Delimiter ',' -NoType

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-14
    • 2021-08-09
    • 2015-07-21
    • 2020-09-16
    • 2014-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多