【问题标题】:Combine two CSV's - Add CSV as another Column合并两个 CSV - 将 CSV 添加为另一列
【发布时间】:2016-04-12 13:28:42
【问题描述】:

我正在尝试将两个 csv 连接在一起。其中一个 CSV 包含我要添加到另一个的列,但是当导出 csv 时,添加的列是空白的。

$csv1

VLAN
1
2
3

$csv2

Host
NETMAN
ADMIN
CLIENT

我明白了

VLAN, Host
1,
2,
3,

想要的输出是

VLAN, Host
1,NETMAN
2,ADMIN
3,CLIENT

我试过了

$csv1 = Import-Csv -Path ".\VLAN.csv"
$csv2 = Import-Csv -Path ".\Hostname.csv"

$csv1 | % {$i=0} { $csv1[$i] | Add-Member -NotePropertyName Hostname -NotePropertyValue $csv2[$i++].Hostname;}

$csv1 | Export-Csv combined.csv -NoType

【问题讨论】:

  • 试试:$csv1 |Join$csv2

标签: csv powershell


【解决方案1】:

给你:

$csv1 = Import-Csv -Path ".\VLAN.csv"
$csv2 = Import-Csv -Path ".\Hostname.csv"

$arr = @()
#If($csv1.count -eq $csv2.count){
    for($i=0; $i -lt $csv1.Count; $i++){
        $temp = New-Object psobject
        $temp | Add-Member -MemberType NoteProperty -Name VLAN -Value $csv1[$i].Vlan
        $temp | Add-Member -MemberType NoteProperty -Name HOST -Value $csv2[$i].Host
        $arr+=$temp
    }
#}

$arr | Export-Csv combined.csv -NoTypeInformation

【讨论】:

  • 我还是空白...我不知道为什么...我认为它可能是主机文件,所以我重新创建了它。
  • @slong16 是整个文件空白还是只有一列?如果你输出 $arr 它会显示什么?
  • 天哪,我觉得自己很愚蠢,我的原始代码有效。一直以来,我在 'hostname' 中都省略了 's' ......一旦我把 s 放在上面,你的代码也能正常工作。我没注意。我原来的 csv 有标题主机名。我已经工作了大约 45 分钟。
【解决方案2】:

$csv1 |Join$csv2

结果

VLAN Host
---- ----
1    NETMAN
2    ADMIN
3    CLIENT

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-07
    • 1970-01-01
    • 2018-03-30
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 2014-11-09
    相关资源
    最近更新 更多