问题描述
我无法尝试从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: empF.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: empF.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