Tidak yakin diff
sendiri dapat melakukannya tetapi Anda selalu dapat menggunakan kekuatan utilitas GNU lainnya untuk membantu Anda.
diff -u diffa.txt diffb.txt | grep '^-[^-]' | sed 's/^-//'
Itu melakukan diff, lalu memilih hanya baris yang dimulai dengan '-' - yang diubah dan memiliki nilai dari file diffa.txt, lalu sed
hapus saja tanda '-' itu.
Edit: Setelah beberapa percobaan dengan diff
, sepertinya perintah di bawah menghasilkan apa yang Anda inginkan:
diff --changed-group-format='%<' --unchanged-group-format='' diffa.txt diffb.txt
Metode yang lebih sederhana adalah dengan menggunakan comm
utilitas linux (Diperlukan file yang diurutkan untuk input). Itu menulis ke keluaran standar:
-
baris yang unik untuk diffa.txt
-
baris yang unik untuk diffb.txt
-
baris yang umum
dan Anda dapat menekan masing-masing dengan parameter 1,2 atau 3 yang sesuai. Jadi dalam kasus Anda akan terlihat seperti ini :
comm -23 diffa.txt diffb.txt
Itu menekan baris yang unik untuk diffb.txt, baris yang umum dan mencetak baris yang unik hanya untuk diffa.txt
Sumber dari: https://www.tutorialspoint.com/unix_commands/comm.htm
Saya ingin menyebutkan bahwa comm
mengharapkan file input yang diurutkan dan dengan demikian melaporkan hasil yang berbeda dari diff
.
diff --changed-group-format='%<' --unchanged-group-format='' diffa.txt diffb.txt
bersifat universal. Salut untuk @vava