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
cmd
en druk op Enterom eenDOS-terminalcmd-venster - Wijzig het huidige pad door de opdracht
cd C:\path\to\your\directory
uit te voeren om de locatie van de twee CSV-bestanden te bereiken
te openen
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
(fc
staat voor “file Compare”).
De opdracht registreert ook het resultaat van de vergelijking in een tekstbestandoutfile.txt
dat zich in dezelfde map bevindt. Alsoutfile.txt
niet 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 /v
de 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 findstr
veel 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.