【问题标题】:Comparing 2 CSV Files比较 2 个 CSV 文件
【发布时间】:2018-01-17 06:27:04
【问题描述】:

我有 2 个标题相同的 CSV 文件,我需要比较两者并从一个文件中删除重复项。例如

CSV1:

RollNo 班级名称 学校 100 X 拉贾 XYZ 101 Y 克里什 XYZ 102 乔 ABC

CSV2:

RollNo 班级名称 学校 200 B 法会 XYZ 100 X 拉贾 XYZ 201 B杰瑞ABC

输出期望如下(仅来自 CSV1)

RollNo 班级名称 学校 101 Y 克里什 XYZ 102 乔 ABC

谁能给它加个灯。 我尝试使用Compare-Object,但它让我很困惑。

Compare-Object $csv1 $csv2 -Property RollNo,Class,Name,School -
    IncludeEqual -ExcludeDifferent |select * -ExcludeProperty 
    SideIndicator | Export-Csv School.csv -NoTypeInfo

【问题讨论】:

  • 您发布的 PowerShell 代码已损坏。请完全按照您的方式发布代码。不要随意换行。另外,请发布原始 CSV 数据(使用文本编辑器打开文件并复制/粘贴内容)。

标签: powershell csv


【解决方案1】:

Compare-Object 无疑是要走的路。 您错过(或未显示)的是之前使用 Import-Csv 将 csv 转换为对象。

$c1 = Import-Csv csv1.csv
$c2 = Import-Csv csv2.csv
Compare-Object $c1 $c2 |?{ $_.SideIndicator -eq '<=' } | select -expand inputobject | Export-Csv csv3.csv -NoTypeInformation

【讨论】:

  • 将输出文件设为空白......我错过了什么吗?
  • Roll No Class Name School
    -------- ----- ---- ------
    200 B Puja XYZ
    100 X Raja XYZ
    201 B Jery ABC
    PS D:\> $c2
    滚动无班级名称学校
    -------- ----- - --- ------
    200 B Puja XYZ
    100 X Raja XYZ
    201 B Jery ABC
    PS D:\> 比较对象 $c1 $c2 | ?{ $_.SideIndicator -eq ' PS D:\DRM\SNAPSHOT>
  • 如果您的 csv 是制表符分隔文件,请使用:$c1=import-csv net1.csv -Delimiter "`t"
猜你喜欢
  • 2019-01-19
  • 1970-01-01
  • 1970-01-01
  • 2021-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多