Saya ingin hanya membedakan baris pertama dari dua file, yang bertentangan dengan seluruh file. Bagaimana saya melakukannya? Saya hanya perlu solusi untuk baris pertama, tetapi jika Anda bisa menentukan jumlah baris yang akan menjadi jawaban yang jauh lebih baik.
Jadi diff akan mengembalikan tidak ada perbedaan antara dua file berikut:
a
1
2
dan:
a
3
4
linux
command-line
diff
gsingh2011
sumber
sumber
Jawaban:
Ini dia:
(ini tidak akan menghasilkan apa-apa).
Anda bisa memasukkannya ke dalam skrip untuk melakukan hal-hal yang Anda sebutkan.
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 menjaditail -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:
sumber
diff -r dir1 dir2
untuk direktori, untuk membatasinya Anda mungkin ingin menyalurkannya ke hal lain. Jika Anda memiliki spesifik, buka pertanyaan baru dan berikan tautan di sini.bash -c "diff <(...) <(...)"
diff -U (n of lines) file1 file2
sumber
-U
argumen? :)