Aqui está:
diff <(head -n 1 file1) <(head -n 1 file2)
(isso não retornaria nada do que nunca).
diff <(head -n 2 file1) <(head -n 2 file2)
Returns:
2c2
< 1
---
> 3
Você pode incorporar isso em um script para fazer as coisas mencionadas.
#!/bin/bash
fileOne=${1}
fileTwo=${2}
numLines=${3:-"1"}
diff <(head -n ${numLines} ${fileOne}) <(head -n ${numLines} ${fileTwo})
Para usar isso, apenas torne o script executável com chmod +x nameofscript.sh
e, em seguida, execute ./nameofscript.sh ~/file1 ~/Docs/file2
Isso deixa o número de linhas padrão em 1, se você desejar acrescentar um número ao final desse comando.
(Ou você pode alternar no seu script com -f1 arquivo1 -f2 arquivo2 -n 1, mas não me lembro do topo da minha cabeça a declaração de caso para isso).
head
retorna desde o início o número de linhas, conforme sugerido por -n
. Se você quiser fazer a reversão, seria tail -n ${numLines}
(a cauda faz, no final, o número de linhas).
Editar 10/10/16:
Isso é específico para o Bash (e shells compatíveis). Se você precisar usar isso de outra coisa:
bash -c 'diff <(...) <(...)'