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 dapat 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 dapat dieksekusi dengan chmod +x nameofscript.sh
dan kemudian untuk mengeksekusi, ./nameofscript.sh ~/file1 ~/Docs/file2
Itu menyisakan # baris default pada 1, jika Anda ingin lebih banyak, tambahkan nomor di akhir perintah itu.
(Atau Anda dapat beralih dalam skrip Anda dengan -f1 file1 -f2 file2 -n 1, tetapi saya tidak ingat di 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 melakukan dari ujung ke belakang jumlah baris).
Sunting 10/5/16:
Ini khusus untuk Bash (dan shell yang kompatibel). Jika Anda perlu menggunakan ini dari sesuatu yang lain:
bash -c 'diff <(...) <(...)'