İsim
diff3 – 3 yollu diferansiyel dosya karşılaştırması
Sözdizimi
diff3 [-3AaEeimTXx] [--diff-program program] [--strip-trailing-cr] [-L | --label label1]
[-L | --label label2] [-L | --label label3] file1 file2 file3
diff3 [--help] [--version]
Açıklama
diff3 yardımcı programı, bir dosyanın üç farklı sürümünün (file1, file2 ve file3) içeriklerini karşılaştırır ve sonucu standart çıktıya yazar. Seçenekler, ayrı sürümleri yeni bir dosyada birleştirmenin (merge) ve temizlemenin (purge) farklı yöntemlerini açıklar. diff3, rcs(1) tarafından belirli sürümleri birleştirmek veya yeni sürümler oluşturmak için kullanılır.
Seçenekler aşağıdaki gibidir:
-3, --easy-only Sadece file3 dosyasına özgü değişiklikleri içeren, ed(1) için uygun bir çıktı betiği üretir.
-A, --show-all Çakışmaları ayraç içine alarak tüm değişiklikleri çıktı olarak verir.
-a, --text Tüm dosyaları ASCII olarak ele alır.
-E, --show-overlap
-X: Sırasıyla -e ve -x seçeneklerine benzer, ancak örtüşen değişiklikleri (yani normal listede ==== ile işaretlenecek değişiklikleri) farklı şekilde ele alır. Her iki dosyadan gelen örtüşen satırlar, "<<<<<<" ve ">>>>>>" satırları ile sınırlandırılarak düzenleme betiği (edit script) tarafından eklenecektir.
-e, --ed ed(1) yardımcı programı için bir girdi betiği olarak kullanılmaya uygun bir biçimde çıktı üretir. Betik daha sonra, üç dosya arasındaki ortak farkları ve file1 ile file3 dosyalarına özgü farkları birleştirmek için kullanılabilir. Diğer bir deyişle, -e seçeneği file1 ve file2'ye özgü farklar ile file2 ve file3'e özgü farkları yoksayar. Yalnızca file2 dosyasına özgü değişiklikleri geri almak için yararlıdır.
--help: Kullanım bilgilerini yazdırır ve çıkış yapar.-i: ed(1) yardımcı programının 'w' ve 'q' komutlarını ekler.
-L, --label file1, file2 ve file3 dosya adları yerine yazdırılacak etiketleri tanımlar.
-m, --merge Bir ed betiği oluşturmak yerine birleştirilmiş çıktıyı verir.
-T, --initial-tab Normal listelemede, her satırın başında iki boşluk yerine bir sekme (tab) kullanır. ed(1) betiği üreten modlarda bu seçenek hiçbir şeyi değiştirmez.
-x, --overlap-only Sadece her üç sürüme de özgü olan değişiklikleri içeren, ed(1) için uygun bir çıktı betiği üretir.
--diff-program program Dosyaları karşılaştırmak için varsayılan diff(1) yerine belirtilen programı kullanır.
--strip-trailing-cr Girdi dosyalarındaki satır sonu satır başı (carriage return - CR) karakterlerini temizler.
--version Sürüm bilgilerini yazdırır ve çıkış yapar.
-E seçeneği, birleştirilmiş dosyalardaki örtüşen değişikliklerin korunmasını ve birinin dikkatine sunulmasını sağlamak amacıyla RCS merge(1) tarafından kullanılır.
Örneğin, file1 ve file2 dosyalarının her ikisinde de 7-8. satırların değiştirildiğini varsayalım. Aşağıdaki komutla oluşturulan düzenleme betiğinin
$ diff3 -E file1 file2 file3
file1 dosyasına uygulanması şu dosyayı oluşturur:
lines 1-6 of file1 <<<<<<< file1 lines 7-8 of file1
lines 7-8 of file3
file3 rest of file1
diff3 yardımcı programının varsayılan çıktısı, tüm dosyalar arasındaki farkları ve her dosya çiftine özgü olan farkları not eder. Değişiklikler, ed(1) uygulamasının farklı sürümlerden istenen hedefi oluşturması için gereken komutlarla açıklanır. Komutların açıklaması için diff(1) sayfasına bakın.
==== Bu işaretin altındaki satırlar, tüm dosyalar arasında farklı olan satır aralıklarıdır.
====n Bu işaretin altındaki satırlar, yalnızca n. dosyada farklı olan satır aralıklarıdır.
Ayrıca Bakınız
diff(1), ed(1), sdiff(1)
Tarihçe
diff3 komutu ilk olarak Sürüm 7 AT&T UNIX içinde yer almıştır.
Hatalar
-e seçeneği, satırdaki ilk ve tek karakter olarak ‘.’ içeren satırları yakalayamaz ve değiştiremez. Ortaya çıkan betik bu satırda başarısız olacaktır çünkü ‘.’ karakteri bir ed(1) düzenleme komutudur.
macOS 26.4 23 Haziran 2022 macOS 26.4