Aqui tienes:
diff <(head -n 1 file1) <(head -n 1 file2)
(Esto no devolvería nada).
diff <(head -n 2 file1) <(head -n 2 file2)
Returns:
2c2
< 1
---
> 3
Puede incorporar eso en un guión para hacer las cosas que menciona.
#!/bin/bash
fileOne=${1}
fileTwo=${2}
numLines=${3:-"1"}
diff <(head -n ${numLines} ${fileOne}) <(head -n ${numLines} ${fileTwo})
Para usar eso, solo haga que el script sea ejecutable chmod +x nameofscript.shy luego ejecutarlo. ./nameofscript.sh ~/file1 ~/Docs/file2Eso deja el número predeterminado de líneas en 1, si desea agregar más un número al final de ese comando.
(O puede hacer cambios en su secuencia de comandos con -f1 archivo1 -f2 archivo2 -n 1, pero no recuerdo la parte superior de mi cabeza la declaración del caso para eso).
headdevuelve desde el principio el número de líneas como lo sugiere -n. Si quisieras hacer reversa, sería tail -n ${numLines}(la cola desde el final vuelve el número de líneas).
Editar 5/10/16:
Esto es específico de Bash (y shells compatibles). Si necesita usar esto de otra cosa:
bash -c 'diff <(...) <(...)'