Wenn die ersten Zeilen, die Sie ein unverwechselbares Format haben ignorieren möchten, die von einem POSIX regulären Ausdruck angepasst werden kann, dann können Sie diff
‚s --ignore-matching-lines=...
Option verwenden, um es zu sagen zu ignorieren diese Zeilen.
Wenn dies nicht möglich ist, hängt die Vorgehensweise, die Sie treffen möchten, wahrscheinlich von Ihren genauen Anforderungen ab. Sie sagen, dass Sie die Dateien "differieren" möchten, aber es ist nicht offensichtlich, wie genau Ihre resultierende Ausgabe mit dem übereinstimmen muss, was Sie von diff -Nr
erhalten würden, wenn sie diese Funktion unterstützt. (Zum Beispiel, müssen Sie die Zeilennummern in der diff die Zeilennummern in den Originaldateien korrekt identifizieren?)
Die eben treu Ansatz wahrscheinlich wie folgt wäre:
- Kopieren jedes Verzeichnis ein neuer Standort mit
cp --recursive ...
.
- Bearbeiten Sie die erste Zeile jeder Datei, um eine magische Zeichenfolge wie
IGNORE_THIS_LINE::
voranzustellen, mit etwas wie find -type f -exec sed -i '1 s/^/IGNORE_THIS_LINE::/' '{}' ';'
.
- Verwenden Sie
diff -Nr --ignore-matching-lines=^IGNORE_THIS_LINE:: ...
, um die Ergebnisse zu vergleichen.
- Rohr den Ausgang
sed s/IGNORE_THIS_LINE:://
, um alle Vorkommen von IGNORE_THIS_LINE::
herauszufiltern, die zeigen, wie vor (innerhalb von einigen Zeilen von nicht-ignorierten Unterschiede werden).
Was eine rekursive Kopie der beiden Ordner mit 'cp -r' über die Herstellung und die Verwendung dann' -exec sed -i 1d finden {} \; 'die ersten Zeilen von den Kopien zu entfernen; Sie können dann normal 'diff -r' ausführen. – choroba