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.sh
y luego ejecutarlo. ./nameofscript.sh ~/file1 ~/Docs/file2
Eso 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).
head
devuelve 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 <(...) <(...)'