Bitte schön:
diff <(head -n 1 file1) <(head -n 1 file2)
(Dies würde überhaupt nichts zurückgeben).
diff <(head -n 2 file1) <(head -n 2 file2)
Returns:
2c2
< 1
---
> 3
Sie könnten das in ein Skript einbauen, um die von Ihnen erwähnten Dinge zu tun.
#!/bin/bash
fileOne=${1}
fileTwo=${2}
numLines=${3:-"1"}
diff <(head -n ${numLines} ${fileOne}) <(head -n ${numLines} ${fileTwo})
Um das zu verwenden, machen Sie das Skript einfach mit chmod +x nameofscript.sh
ausführbar und dann zur Ausführung ./nameofscript.sh ~/file1 ~/Docs/file2
Dadurch bleibt die Standardanzahl der Zeilen bei 1, wenn Sie mehr möchten, hängen Sie eine Zahl an das Ende dieses Befehls an.
(Oder Sie könnten in Ihrem Skript mit -f1 Datei1 -f2 Datei2 -n 1 wechseln, aber ich erinnere mich nicht an die Groß-/Kleinschreibung dafür).
head
gibt von Anfang an die Anzahl der Zeilen zurück, wie von -n
vorgeschlagen . Wenn Sie es umgekehrt machen möchten, wäre es tail -n ${numLines}
(Schwanz macht vom Ende zurück die Anzahl der Zeilen).
Bearbeiten 10.05.16:
Dies ist spezifisch für Bash (und kompatible Shells). Wenn Sie dies von etwas anderem verwenden müssen:
bash -c 'diff <(...) <(...)'