Hoe twee csv-bestanden in Windows te vergelijken

Ik moet twee csv-bestanden in windows7 vergelijken.
Hoe kan ik te werk gaan om dit te bereiken. Ik wil de verschillen in beide bestanden zien, zoals we tkdiff in Linux kunnen gebruiken.


Antwoord 1, autoriteit 100%

Suggestie:

  • Druk op de snelkoppeling Windows+Rom de prompt Uitvoeren van Windows te openen
  • Typ cmden druk op Enterom een DOS-terminalcmd-venster
  • te openen

  • Wijzig het huidige pad door de opdracht cd C:\path\to\your\directoryuit te voeren om de locatie van de twee CSV-bestanden te bereiken

Tip: om een gekopieerd pad van het klembord in het DOS-terminalcmd-venster te plakken, kunt u (1) met de rechtermuisknop op het terminalvenster klikken of (2) op drukken Shift+Invoegen.

  • Ten slotte, om de twee bestanden te vergelijken, voer je fc filename1.csv filename2.csv > outfile.txt(fcstaat voor “file Compare”).
    De opdracht registreert ook het resultaat van de vergelijking in een tekstbestand outfile.txtdat zich in dezelfde map bevindt. Als outfile.txtniet bestaat, wordt het automatisch aangemaakt.

Antwoord 2, autoriteit 30%

Hier is nog een andere optie die ik erg handig vond, zoals hiervermeld:

findstr /v /g:"file1.csv" "file2.csv"

Waar de schakeloptie /vde verschillen retourneert en /g:de zoekreeksen uit file1.csv haalt. Je kunt findstr /?gebruiken voor meer hulp.

Je kunt ook de verschillen naar een bestand afdrukkenmet:

findstr /v /g:"file1.csv" "file2.csv > diffs.csv"

Terzijde: ik vond findstrveel nauwkeuriger en de uitvoer leesbaarder dan fc.

UPDATE
Dit werkt mooi met ‘kleinere’ bestanden. U krijgt mogelijk een out of memory-fout bij grotere bestanden. In dit geval moest ik me wenden tot Python en dataframes. Gewoon een vriendelijke heads-up …


Antwoord 3, autoriteit 9%

Ik heb dit vandaag gedaan.

Laten we zeggen dat we 2 csv-bestanden X en Y hebben

X met kolommen a, b, c
Y met kolom a, b, c

De rijen staan niet in dezelfde volgorde en zijn verspreid over de csv-bestanden.

Ik heb ze allebei geïmporteerd in mijn Excel-blad.
Ik heb ze eerst gesorteerd op kolom c en vervolgens op kolom b en vervolgens op kolom a.
Je kunt in elke gewenste volgorde gaan.

Vergelijk de gesorteerde bestanden via de vergelijkingsplugin/Beyond Compare van notepad++.


Antwoord 4

U kunt hetzelfde doen met Powershell, wat handig kan zijn als u zich in een alleen-lezen map bevindt.

compare-object -ReferenceObject (Get-Content filename1.CSV) -DifferenceObject (Get-content filename2.CSV)

Je kunt Powershell direct in je map starten zonder te navigeren via cd, door powershell in de adresbalk van de map te typen.

Other episodes