【问题标题】:Comparing csv files in Powershell using Compare-Object使用 Compare-Object 在 Powershell 中比较 csv 文件
【发布时间】:2013-09-26 23:08:27
【问题描述】:

我是 powershell 新手,我在创建用于比较两个 csv 文件的脚本时遇到了一些难题。第一个 csv 中只有一个名为“数据库名称”的列。第二个 csv 有很多列,我只关心其中两个“数据库名称”和“主机名”。现在脚本只比较“数据库名称”列,效果很好!!并导出到 Differences.csv。但是,我还想查看差异文件中每个“数据库名称”对应的“主机名”列。

$northdb = Import-Csv -Path ".\northdb.csv" -Header "Database Name" | Sort-object Property "Database Name" -Unique 

$sdb = Import-Csv ".\Current\SQLDatabaseInventory.csv" -Header "hostname",h2,h3,h4,h5,"Database Name"  |Sort-Object -Property "Database Name" -Unique

Compare-Object $northdb $sdb -Property  "Database Name" |  Where-Object{$_.SideIndicator -eq '=>'} | 
Select-Object  "Database Name" | export-csv .\Difference.csv -NoTypeInfo

请帮忙

【问题讨论】:

  • 你能分享两个文件中的一些示例数据吗?

标签: powershell powershell-2.0 powershell-3.0


【解决方案1】:

如果您将-PassThru 添加到您的比较对象,您将收到所有对象属性

Compare-Object $northdb $sdb -Property  "Database Name" -PassThru

然后你也可以导出主机名:

Compare-Object $northdb $sdb -Property  "Database Name" -PassThru |  Where-Object{$_.SideIndicator -eq '=>'} | Select-Object  "Database Name", "hostname" | export-csv .\Difference.csv -NoTypeInfo

【讨论】:

    猜你喜欢
    • 2022-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-01
    相关资源
    最近更新 更多