- Güçlü, çok hızlı, kullanıcı dostu ve
grep ile uyumlu bir dosya desen arama aracı
- Yeni bir dosya dizinleyicisi kullanarak dosya sistemi aramasını hızlandırır; TUI (metin tabanlı kullanıcı arayüzü) üzerinden veya
grep ile uyumlu seçeneklerle komut satırında arama yapılabilir
- Google aramasına benzer desen komutlarını destekler
- Fuzzy aramayı destekler (desende bir veya iki harfe kadar hatalı yazılmış kelimeleri tanıyacak şekilde genişletilmiş ya da en iyi sonuçları üreten arama)
- MacOS, Windows, Alpine, Android Termux, Arch, CentOS, Debian, Fedora, FreeBSD, NetBSD, OpenSUSE, RHEL gibi çeşitli sistemlere kurulabilir
- İç içe geçmiş zip/tar/pax/cpio arşivleri, sıkıştırılmış dosyalar, ikili dosyalar, PDF, doc, docx gibi çeşitli dosya türlerinde arama yapabilir ve hexdump alabilir
Komutlar
- Dosyalarda desen aramak için
ug ve ugrep komutları kullanılabilir; ug, çalışma dizininde veya ana dizinde bulunan .ugrep yapılandırma dosyasını kullanır.
ug --save-config OPTIONS, geçerli .ugrep yapılandırmasını kullanarak çalışma dizinine yeni bir .ugrep dosyası kaydeder.
ugrep, .ugrep yapılandırma dosyasını kullanmaz ve kabuk betiklerinde en iyi şekilde çalışır.
- Çeşitli örneklerle dosyalarda ve dizinlerde desen eşleme, yapılandırma dosyası kaydetme, Google araması vb. kullanım biçimleri sunulur.
Seçenekler
ugrep, GNU grep ile uyumludur ve GNU grep komut satırı seçeneklerini destekler.
- Dosya listeleri, eşleşme gösterimi, eşleşme bilgisi, eşleşme bağlamı gibi konuları kapsayan çeşitli seçenekler sunar.
- Desen eşleme modları, etkileşimli TUI, dosya arama, fuzzy arama gibi özellikler içerir.
Arşivler ve sıkıştırılmış dosyalar
-z seçeneği ile arşivler, tarball'lar ve sıkıştırılmış dosyalar aranabilir.
- Çeşitli seçeneklerle belirli bir derinliğe kadar arşiv içi arama, ikili dosyaları yok sayma, dosya türüne ve glob desenlerine dayalı arama desteklenir.
İkili dosyalar ve aygıtlar
- İkili dosyaları yok sayma veya hexdump alma seçeneklerinin yanı sıra özel aygıtları arama seçeneklerini de içerir.
Hariç tutma ve dahil etme
- İkili dosyaları yok sayma, sembolik bağlantıları takip etme, gizli dosyaları dahil etme, belirli dosya türleri ve glob desenlerinde arama yapmayı denetleyen seçenekler sunar.
Biçimlendirilmiş çıktı
- CSV, JSON, XML ve kullanıcı tanımlı biçimler dahil çeşitli çıktı biçimlerini destekler.
Güzel şeyler, daha fazla ya da daha azı
- Çıktıyı daha okunaklı hale getiren seçenekler; renkler, hiperlinkler, pager, etiketler ve eşleşme değiştirme gibi özellikleri içerir.
Yardım alma
--help seçeneği ile gerekli yardıma ulaşılabilir; çeşitli seçenekler, desenler, glob'lar ve filtreler için ayrıntılı yardım sunulur.
GN⁺ görüşü
ugrep, mevcut grep araçlarına kıyasla çok daha güçlü özellikler sunar ve çeşitli dosya türleri ile desen eşleme seçenekleri sayesinde kullanıcının arama deneyimini geliştirir.
- Kullanıcı dostu TUI ve yapılandırma dosyaları sayesinde kişiselleştirilmiş bir arama ortamı kurulabilir.
- Bu araç, yazılım geliştiriciler ve sistem yöneticileri için büyük kod tabanlarını veya dosya sistemlerini etkili biçimde keşfetmek ve analiz etmekte oldukça faydalıdır.
2 yorum
ripgrep’i zaten iyi kullandığım için aradaki farkın ne olduğuna bakarken şu yazıya rastladım.https://reddit.com/r/rust/…
Birkaç yıl öncesinin konusu olsa da,
ugreptarafıugrep’inripgrep’den daha hızlı olduğunu,ripgreptarafı iseripgrep’inugrep’den daha hızlı olduğunu söylüyor; peki hangisi doğru? Asıl etkileyici olan yorumlar.ugrep’in yaptığını söylediği testler yeniden uygulanmış ve sonuçlar özetlenmiş.Kabaca özetlemek gerekirse, çoğu durumda
ripgrep’in daha hızlı olduğu doğru gibi görünüyor;ugreptarafının ise testleri kendisine avantaj sağlayacak biçimde yürütmüş olabileceği söyleniyor. (ugrep’in kullandığı test içeriğiyle denendiğinde bile birçok durumdaripgrepdaha iyi sonuç veriyor; ayrıcaugreptarafının test boyutunu küçültüp gürültüden kaynaklanan sapmayı artırarak sadece lehine olan sonuçları seçmiş olabileceğine dair bir şüphe de dile getiriliyor.)Hacker News görüşü
Performans ve ripgrep(ripgrep) ile karşılaştırma hakkında bir tartışma var. ripgrep tabanlı birkaç metin kullanıcı arayüzü (TUI) de tanıtılıyor.
Shell pipeline'ları için gerçek zamanlı önizleme sunan ve shell'e entegre olan bir araca duyulan beklenti dile getiriliyor. zsh'te
accept-and-holdzle widget'ı kullanılarak benzer bir işlev uygulanmış, ancak sonuçları gerçek zamanlı görmek daha tercih edilir olurdu.n-gram indeksleyici desteğine ilgi ifade ediliyor. ripgrep de bu özelliği planlamıştı ama henüz uygulamadı. Büyük kod tabanları için csearch kullanılmış, ancak çeşitli kısıtları var. Yeni indeksleyicinin Linux kernel ağacını indekslemesi 86 saniye sürüyor; bu da csearch'ün cindex aracından çok daha yavaş.
Uyumlulukla ilgili önemli bir uyarı: aslında uyumlu değil ve GNU sürümünden tamamen farklı çalışan seçenekler birkaç saniye içinde bulunabiliyor.
Sebastian Krahmer'in yaptığı grab aracına da bakılması öneriliyor.
Yeni araçların neden XDG standardını takip etmediği sorgulanıyor. XDG standardına uyulursa home dizininin sayısız ayar dosyasıyla dağılması önlenebilir.
Debian tabanlı depolarda kullanılabilen Ugrep için olumlu bir değerlendirme var. Özellikle yazım hatalarını veya 1-2 harflik farkları tolere eden fuzzy match özelliği faydalı bulunuyor.
Dosya içinde birden fazla terimi arama işlevinden (namıdiğer "dosya içi googling") memnuniyet ifade ediliyor. Daha önce bunun için özel bir script yazılmıştı, ama bu özellik sayesinde artık gerek kalmamış. TUI'ye de bakılacak. Şimdiye kadar ripgrep kullanılmış, ancak bu aracın ripgrep'in yerini alıp alamayacağı karşılaştırılacak.