Ich möchte nur die erste Zeile von zwei Dateien unterscheiden, im Gegensatz zur gesamten Datei. Wie würde ich das machen? Ich brauche nur eine Lösung für die erste Zeile, aber wenn Sie die Anzahl der Zeilen angeben könnten, wäre das eine viel bessere Antwort.
Daher würde diff keine Unterschiede zwischen den folgenden beiden Dateien zurückgeben:
a
1
2
und:
a
3
4
linux
command-line
diff
gsingh2011
quelle
quelle
Antworten:
Bitte schön:
(Dies würde überhaupt nichts zurückgeben).
Sie könnten das in ein Skript integrieren, um die Dinge zu tun, die Sie erwähnen.
Um dies zu verwenden, machen Sie das Skript einfach ausführbar mit
chmod +x nameofscript.sh
und führen Sie dann Folgendes aus: Damit./nameofscript.sh ~/file1 ~/Docs/file2
bleibt die Standardanzahl der Zeilen auf 1, wenn Sie eine Nummer am Ende dieses Befehls anhängen möchten.(Oder Sie können in Ihrem Skript mit -f1 Datei1 -f2 Datei2 -n 1 wechseln, aber ich kann mich nicht mehr an die case-Anweisung dafür erinnern).
head
Gibt von Anfang an die Anzahl der Zeilen zurück, wie von vorgeschlagen-n
. Wenn Sie rückwärts machen wollen, wäre estail -n ${numLines}
(Schwanz macht vom Ende zurück die Anzahl der Zeilen).Edit 5/10/16:
Dies gilt speziell für Bash (und kompatible Shells). Wenn Sie dies von etwas anderem verwenden müssen:
quelle
diff -r dir1 dir2
für Verzeichnisse, um dies einzuschränken , möchten Sie das wahrscheinlich an etwas anderes weiterleiten . Wenn Sie Einzelheiten haben, öffnen Sie eine neue Frage und geben Sie hier einen Link an.bash -c "diff <(...) <(...)"
diff -U (n Zeilen) file1 file2
quelle
-U
Argument etwas näher erläutern ? :)