Das Dienstprogramm Diff funktioniert also genau so, wie ich es für 2 Dateien möchte, aber ich habe ein Projekt, das Vergleiche mit mehr als 2 Dateien gleichzeitig erfordert, möglicherweise bis zu 10 gleichzeitig. Dies erfordert auch, dass alle diese Dateien nebeneinander liegen. Meine Forschung hat nicht wirklich etwas ergeben, vimdiff scheint das beste zu sein, mit der Fähigkeit, 4 auf einmal zu vergleichen.
Meine Frage: Gibt es ein Dienstprogramm zum Vergleichen von mehr als 2 Dateien gleichzeitig oder eine Möglichkeit, diff / vimdiff zu hacken, damit mehrere Vergleiche durchgeführt werden können? Die Dateien, die ich vergleichen werde, sind relativ kurz, daher sollte es nicht zu langsam sein.
Danke im Voraus!
quelle
Vim kann das schon:
Normalerweise sind Sie jedoch auf 4 Dateien beschränkt. Sie können dies jedoch ändern, indem Sie eine einzelne Zeile in der Quelle von Vim ändern. Die Konstante
DB_COUNT
definiert die maximale Anzahl von diff ed Dateien, und es ist an der Spitze der definiertdiff.c
in Versionen 6.x und früher oder etwa zwei Drittel des Weges nach untenstructs.h
in den Versionen 7.0 und höher.quelle
diff
hat eingebaute Option--from-file
und--to-file
, die einen Operanden mit allen anderen vergleicht.--from-file=FILE1 Compare FILE1 to all operands. FILE1 can be a directory. --to-file=FILE2 Compare all operands to FILE2. FILE2 can be a directory.
quelle
Kasse "Beyond Compare": http://www.scootersoftware.com/
Sie können damit ganze Dateiverzeichnisse vergleichen und es sieht so aus, als ob es auch unter Linux läuft.
quelle
Wenn Sie mehrere Diffs basierend auf einer Datei ausführen, können Sie wahrscheinlich versuchen, ein Skript mit einer for-Schleife zu schreiben, die durch jedes Verzeichnis ausgeführt und das Diff ausgeführt wird. Obwohl es nicht nebeneinander wäre, könnte man sie zumindest schnell vergleichen. hoffe das hat geholfen.
quelle
Nicht die Beantwortung der Hauptfrage, aber hier ist etwas ähnlich zu , was Benjamin Neil vorgeschlagen hat , aber diff ing alle Dateien:
Speichern Sie die Dateinamen in einem Array und durchlaufen Sie dann die Kombinationen aus Größe zwei und diff (oder machen Sie, was Sie wollen).
files=($(ls -d /path/of/files/some-prefix.*)) # Array of files to compare max=${#files[@]} # Take the length of that array for ((idxA=0; idxA<max; idxA++)); do # iterate idxA from 0 to length for ((idxB=idxA + 1; idxB<max; idxB++)); do # iterate idxB + 1 from idxA to length echo "A: ${files[$idxA]}; B: ${files[$idxB]}" # Do whatever you're here for. done done
Abgeleitet von der Antwort von @ charles-duffy : https://stackoverflow.com/a/46719215/1160428
quelle
Es gibt einen einfachen und guten Weg, dies zu tun = GREP.
Abhängig von der Größe des Texts können Sie ihn kopieren und einfügen oder die Eingabe der Datei in den Befehl grep umleiten. Wenn Sie ein grep -vir / path erstellen, um eine umgekehrte Suche durchzuführen, oder ein grep -ir / path. Dies ist mein Weg für Zertifizierungsprüfungen.
quelle