Aquí tienes:
diff <(head -n 1 file1) <(head -n 1 file2)
(esto no devolvería nada en absoluto).
diff <(head -n 2 file1) <(head -n 2 file2)
Returns:
2c2
< 1
---
> 3
Podrías incorporar eso en un guión para hacer las cosas que mencionas.
#!/bin/bash
fileOne=${1}
fileTwo=${2}
numLines=${3:-"1"}
diff <(head -n ${numLines} ${fileOne}) <(head -n ${numLines} ${fileTwo})
Para usar eso, simplemente haga que el script sea ejecutable con chmod +x nameofscript.sh
y luego para ejecutar, ./nameofscript.sh ~/file1 ~/Docs/file2
Eso deja el número predeterminado de líneas en 1, si desea agregar más, agregue un número al final de ese comando.
(O podría hacer cambios en su secuencia de comandos con -f1 archivo1 -f2 archivo2 -n 1, pero no recuerdo en mi cabeza la declaración del caso para eso).
head
devuelve desde el principio el número de líneas sugerido por -n
. Si quisieras hacerlo a la inversa, sería tail -n ${numLines}
(la cola hace desde el final hacia atrás el número de líneas).
Editar 10/5/16:
Esto es específico de Bash (y shells compatibles). Si necesita usar esto de otra cosa:
bash -c 'diff <(...) <(...)'