Ecco qua:
diff <(head -n 1 file1) <(head -n 1 file2)
(questo non restituirebbe nulla).
diff <(head -n 2 file1) <(head -n 2 file2)
Returns:
2c2
< 1
---
> 3
Potresti incorporarlo in uno script per fare le cose che dici.
#!/bin/bash
fileOne=${1}
fileTwo=${2}
numLines=${3:-"1"}
diff <(head -n ${numLines} ${fileOne}) <(head -n ${numLines} ${fileTwo})
Per usarlo, basta rendere eseguibile lo script con chmod +x nameofscript.sh
e poi per eseguire, ./nameofscript.sh ~/file1 ~/Docs/file2
Ciò lascia il numero predefinito di righe su 1, se ne vuoi di più aggiungi un numero alla fine di quel comando.
(Oppure potresti cambiare il tuo script con -f1 file1 -f2 file2 -n 1, ma non ricordo nemmeno in cima alla mia testa l'istruzione case per questo).
head
restituisce dall'inizio il numero di righe suggerito da -n
. Se volessi fare il contrario, sarebbe tail -n ${numLines}
(la coda restituisce dalla fine il numero di linee).
Modifica 5/10/16:
Questo è specifico per Bash (e shell compatibili). Se hai bisogno di usarlo da qualcos'altro:
bash -c 'diff <(...) <(...)'