Fark ve yama hakkında okudum ama ihtiyacım olan şeyi nasıl uygulayacağımı anlayamıyorum. Sanırım oldukça basit, bu yüzden sorunumu göstermek için bu iki dosyayı al:
a.xml
<resources>
<color name="same_in_b">#AAABBB</color>
<color name="not_in_b">#AAAAAA</color>
<color name="in_b_but_different_val">#AAAAAA</color>
<color name="not_in_b_too">#AAAAAA</color>
</resources>
b.xml
<resources>
<color name="same_in_b">#AAABBB</color>
<color name="in_b_but_different_val">#BBBBBB</color>
<color name="not_in_a">#AAAAAA</color>
</resources>
Ben böyle bir çıktı var istiyorum (sipariş önemli değil):
<resources>
<color name="same_in_b">#AAABBB</color>
<color name="not_in_b">#AAAAAA</color>
<color name="in_b_but_different_val">#BBBBBB</color>
<color name="not_in_b_too">#AAAAAA</color>
<color name="not_in_a">#AAAAAA</color>
</resources>
Birleştirme, bu basit kurallar boyunca tüm satırları içermelidir:
- yalnızca dosyalardan birinde olan herhangi bir satır
- bir satır aynı ad etiketine ancak farklı bir değere sahipse, değeri ikinci
Bu görevi bir bash betiği içinde uygulamak istiyorum, bu yüzden başka bir program daha uygunsa, zorunlu olarak diff ve patch ile yapılması gerekmemelidir
diff
hangi satırların bir dosyada olduğunu ancak diğerinin olmadığını ancak tüm satırların ayrıntı düzeyinde olduğunu söyleyebilir.patch
yalnızca benzer bir dosyada aynı değişiklikleri yapmak için uygundur (belki de aynı dosyanın farklı bir sürümü veya her değişiklik için satır numaralarının ve çevresindeki satırların orijinal dosyanızla aynı olduğu tamamen farklı bir dosya). Yani hayır, bu görev için özellikle uygun değiller. Bir göz atmak isteyebilirsiniz,wdiff
ancak çözüm muhtemelen özel bir komut dosyası gerektirir. Verileriniz XML gibi göründüğünden, bazı XSL araçlarını aramak isteyebilirsiniz.