powershell - 导入 CSV GroupBy Sum

标签 powershell scripting powershell-2.0

我一直在尝试从 csv 文件中获取有意义的输出。

原始输入看起来像这样。

Col1,Col2,Col3,Col4
a,2,b,z
a,2,c,x
a,1,d,y
e,1,f,s
e,2,g,t
h,1,k,r

我正在尝试实现以下输出(不包括 col4)并导出到文件以使用 PowerShell 2 进行进一步报告。

a  5  b,c,d
e  3  f,g
h  1  k

我的脚本函数的代码是:

    $data = import-csv $filename.csv | Select-Object -property Col1,Col2,Col3 
    $view | Group Col1 | `
    select Name,@{  
      Name="Col2Sum"; 
       Expression = {  
         [math]::round(($_.Group | Measure-Object -Sum Col2).Sum/60,2) 
       } 
      } | `
    Sort "Col2Sum" -desc | ft -auto -GroupBy Col | out-file $file.txt

我被卡住的地方是如何在一行中从 Col3 生成数组并正确输出它们。

如果有人有任何想法。

最佳答案

你能试试这个吗:

    $a = import-csv C:\temp\F.csv |Group-Object -Property col1 | `
         % {$_.name + " "  + $_.count + " " + `
         ($_.group | % {$i=0;$j=$_.count}{$i++ ; $_.col3 + ","*($j-$i -gt 0)})}
    $a

a 3 b, c, d
e 2 f, g
h 1 k

然后

    $a = import-csv C:\temp\F.csv |Group-Object -Property col1 | `
         % {$_.name + " "  + ($_.group | %{$i=0}{$i+=$_.col2}{$i}) + " " + `
         ($_.group | % {$i=0;$j=$_.count}{$i++ ; $_.col3 + ","*($j-$i -gt 0)})}
    $a

a 5 b, c, d
e 3 f, g
h 1 k

关于powershell - 导入 CSV GroupBy Sum,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13050408/

相关文章:

powershell - 使用Powershell为按日期创建的文件创建7z存档

windows-7 - 如何说服 powershell(通过任务计划程序运行)找到我的网络驱动器?

linux - 将字符串存储在变量中时 tr(翻译字符)出错

Powershell:在目标系统上安装模块

java - 以编程方式获取 DFS/UNC 信息 - Java

git - Get-ChildItem 执行 git status

powershell - 从 iscsi 启动器名称获取 iscsi 映射驱动器号

powershell - 如何通过Powershell解析最新的DNS CName结果

C++ Lua(对象表的表)

bash - 循环代码直到用户输入成功