将CSV ROW组分成单独的CSV OR变量

时间:2018-07-10 13:56:34

标签: arrays powershell grouping

$groups = Get-Content c:\devices.csv | Group {$_.Substring(0,3)}| %{$_.Group; ""}



    AAAGroup1,192.168.1.1
    AAAGroup1,192.168.1.2

    BBBGroup2,192.168.2.1
    BBBGroup2,192.168.2.2

    CCCGroup3,192.168.3.1
    CCCGroup3,192.168.3.2

我进行了广泛的搜索,只能根据列的选择找到解决方案。要将以上数据输出到每个组一个单独的变量或一个单独的CSV文件中。从技术上讲,每个之间都有一个空格就备用行而言,就我所知就是这样。

$groups = Get-Content c:\devices.csv | Group {$_.Substring(0,3)}| %{$_.Group; ""}

ForEach ($Group in $Groups)...

1 个答案:

答案 0 :(得分:2)

提供了一个带有标题Device,IPv4

的devices.csv文件

以下脚本将添加一个名为calculated property的{​​{1}},可用于排序,输出到表和Group或其他内容。

-GroupBy

样本输出

## Q:\Test\2018\07\10\SO_51267179.ps1

$data = Import-Csv '.\devices.csv' | 
  Select-Object Device,IPv4,@{n='Group';e={$_.Device.Substring(0,3)}}

$data | Format-Table -GroupBy Group

要将每个组输出到自己的.csv

   Group: AAA

Device    IPv4        Group
------    ----        -----
AAAGroup1 192.168.1.1 AAA
AAAGroup1 192.168.1.2 AAA

...snip...

示例输出:

$data = Import-Csv '.\devices.csv' | 
  | Group-Object {$_.Device.Substring(0,3)}| ForEach-Object {
    $_.Group | Export-Csv "$($_.Name).csv" -NoTypeInformation
}
相关问题