Ini dia:
diff <(head -n 1 file1) <(head -n 1 file2)
(ini tidak akan menghasilkan apa-apa).
diff <(head -n 2 file1) <(head -n 2 file2)
Returns:
2c2
< 1
---
> 3
Anda bisa memasukkannya ke dalam skrip untuk melakukan hal-hal yang Anda sebutkan.
#!/bin/bash
fileOne=${1}
fileTwo=${2}
numLines=${3:-"1"}
diff <(head -n ${numLines} ${fileOne}) <(head -n ${numLines} ${fileTwo})
Untuk menggunakannya, cukup buat skrip yang dapat dieksekusi dengan chmod +x nameofscript.sh
dan kemudian jalankan, ./nameofscript.sh ~/file1 ~/Docs/file2
Itu meninggalkan # baris default pada 1, jika Anda ingin lebih menambahkan nomor ke akhir perintah itu.
(Atau Anda dapat melakukan switch pada skrip Anda dengan -f1 file1 -f2 file2 -n 1, tapi saya tidak ingat bagian atas kepala saya pernyataan kasus untuk itu).
head
mengembalikan dari awal baris seperti yang disarankan oleh -n
. Jika Anda ingin melakukan kebalikannya, itu akan menjadi tail -n ${numLines}
(ekor tidak dari ujung belakang jumlah garis).
Edit 5/10/16:
Ini khusus untuk Bash (dan shell yang kompatibel). Jika Anda perlu menggunakan ini dari sesuatu yang lain:
bash -c 'diff <(...) <(...)'