Hi
Wie muss ich es machen dass ich nur die änderten Zeilen bei einem Vergleich von zwei Dateien in eine neue Datei schreibe.
(also die Zielen in denen der Commander etwas rot markiert)
Beispiel
datei 1
der hund läuft
auf vier pfoten
und wedelt mit dem Schwanz
datei 2
der hund läuft
auf vier Pfoten
und wedelt mit dem Schwanz
Ergebnis sollte sein
datei 3
auf vier Pfoten
geht das? Danke
Files vergleichen -> speichern der geänderten Zeilen
Moderators: Hacker, Stefan2, white
- ghisler(Author)
- Site Admin
- Posts: 50541
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
Dazu müssen Sie die Option "Nur Unterschiede zeigen, mit Extra-Zeilen" ankreuzen, und die Anzahl Extra-Zeilen auf 0 stellen. Dann wechseln Sie in den Bearbeiten-Modus, markieren alles mit Strg+Umsch+Ende, und kopieren mit Strg+C. Allerdings werden so auch leere Zeilen mit kopiert.
Author of Total Commander
https://www.ghisler.com
https://www.ghisler.com
- ghisler(Author)
- Site Admin
- Posts: 50541
- Joined: 2003-02-04, 09:46 UTC
- Location: Switzerland
- Contact:
Die leeren Zeilen sind deshalb nötig, damit beim Einfügen auf der anderen Seite keine Abweichung entsteht.
Author of Total Commander
https://www.ghisler.com
https://www.ghisler.com
PowerShell: Vergleiche zwei Textdateien und speichere Ergebn
Zwecks Automatisierung kann man auch ein Betriebssystem-Skript verwenden, hier zB mit PowerShell:
- gehe in den Ordner
- öffne eine PowerShell Eingabeaufforderung
- kopiere den folgenden Befehl ein (eine lange Zeile):
DIFF (GC '.\Datei 1.txt') (GC '.\Datei 2.txt') -Case -Pass | where {$_.SideIndicator -eq '=>'} | SC 'Datei 3.txt'
Hier die Langfassung (eine lange Zeile):
Compare-Object -ReferenceObject (Get-Content '.\Datei 1.txt') -DifferenceObject (Get-Content '.\Datei 2.txt') -CaseSensitive -PassThru | where {$_.SideIndicator -eq "=>"} | Set-Content "Datei 3.txt"
Daraus, und mit den TC-Parametern wie %C1 und %C2, kann man sich auch einen TC-Button erstellen:
Befehl: PowerShell -NoExit
Parameter: DIFF (GC %C1) (GC %C2) -Case -Pass | where {$_.SideIndicator -eq '=>'} | SC 'Datei 4.txt'
Startpfad:
Icon: powershell
Tooltip: Vergleiche zwei ausgewählte Textdateien und schreibe den Unterschied in eine neue Datei
Siehe auch: Einen neuen Button erstellen
>>> https://www.ghisler.ch/board/viewtopic.php?p=336056#336056
Extratipp: ein '?'-Zeichen an erster Stelle im Parameter-Feld zeigt den Befehl vor der Ausführung noch einmal an, dabei kann zB der Name der Ausgabedatei angepasst werden.
- - -
Getestet auf Win7/64 mit
PS>$host
Name : ConsoleHost
Version : 3.0
- gehe in den Ordner
- öffne eine PowerShell Eingabeaufforderung
- kopiere den folgenden Befehl ein (eine lange Zeile):
DIFF (GC '.\Datei 1.txt') (GC '.\Datei 2.txt') -Case -Pass | where {$_.SideIndicator -eq '=>'} | SC 'Datei 3.txt'
Hier die Langfassung (eine lange Zeile):
Compare-Object -ReferenceObject (Get-Content '.\Datei 1.txt') -DifferenceObject (Get-Content '.\Datei 2.txt') -CaseSensitive -PassThru | where {$_.SideIndicator -eq "=>"} | Set-Content "Datei 3.txt"
Daraus, und mit den TC-Parametern wie %C1 und %C2, kann man sich auch einen TC-Button erstellen:
Befehl: PowerShell -NoExit
Parameter: DIFF (GC %C1) (GC %C2) -Case -Pass | where {$_.SideIndicator -eq '=>'} | SC 'Datei 4.txt'
Startpfad:
Icon: powershell
Tooltip: Vergleiche zwei ausgewählte Textdateien und schreibe den Unterschied in eine neue Datei
Siehe auch: Einen neuen Button erstellen
>>> https://www.ghisler.ch/board/viewtopic.php?p=336056#336056
Extratipp: ein '?'-Zeichen an erster Stelle im Parameter-Feld zeigt den Befehl vor der Ausführung noch einmal an, dabei kann zB der Name der Ausgabedatei angepasst werden.
- - -
Getestet auf Win7/64 mit
PS>$host
Name : ConsoleHost
Version : 3.0