Terminal üzerinden iki farklı metin dosyasını satır bazlı ve karakter bazlı analiz eden, farkları renkli olarak görselleştiren bir Node.js CLI aracıdır.
Amaç: Metin dosyaları arasındaki farklılıkları hızlı, anlaşılır ve görsel olarak ayırt edilebilir şekilde sunmak.
-
Asenkron Dosya Okuma
fs/promiseskullanılarak non-blocking ve performanslı dosya erişimi sağlanır. -
Karakter Bazlı Konum Analizi
Aynı indekslerdeki karakterler karşılaştırılır. Küçük metin farklarını yakalamak için idealdir. -
Akıllı Diff Algoritması
diffkütüphanesi kullanılarak:- Eklenen bölümler
- Silinen bölümler
- Değiştirilen segmentler
semantik olarak analiz edilir.
-
Renkli Terminal Çıktısı
chalkile okunabilir CLI çıktısı sağlanır.
| Renk | Anlam |
|---|---|
| 🟩 Yeşil Arka Plan | Yeni eklenen karakterler |
| 🟥 Kırmızı Arka Plan | Silinen veya değiştirilen karakterler |
| ⬜ Gri | Ortak karakterler |
git clone https://github.com/serdalkolpar/dosya-okuma-karsilastirma-sistemi.gitcd dosya-okuma-karsilastirma-sisteminpm installSistem iki farklı modda çalışır:
Aynı konumdaki karakterleri birebir kıyaslar.
node Dosya-Karsilastirma.js dosya1.txt dosya2.txtNe zaman kullanılır?
Küçük metin değişikliklerini veya birebir konum farklılıklarını görmek istediğinde.
Eklenen, silinen ve değiştirilen blokları segment bazlı gösterir.
node Dosya-Diff.js dosya1.txt dosya2.txtNe zaman kullanılır?
Kod veya uzun metinlerde anlamlı değişiklik bloklarını görmek istediğinde.
- Node.js (v22.14.0+)
- chalk
- diff
Bu proje iki farklı yaklaşımı bir arada sunar:
- Index-based comparison (Deterministik karakter eşleşmesi)
- Edit-distance tabanlı diff yaklaşımı (Algoritmik segment analizi)
Bu sayede hem mikro hem makro seviyede fark analizi yapılabilir.
Serdal Kolpar
Full Stack Developer
git add README.md
git commit -m "docs: README guncellendi"
git push origin main