5 puan yazan GN⁺ 2023-12-01 | 1 yorum | WhatsApp'ta paylaş

Özet: yeni komut satırı arama aracı ripgrep'e giriş

  • ripgrep, The Silver Searcher'ın kullanım kolaylığını GNU grep'in performansıyla birleştiren yeni bir komut satırı arama aracıdır.
  • Linux, Mac ve Windows için ikili dosyalar sunar ve Rust ile yazılmıştır.
  • Tek dosya ve büyük dizin aramalarında performans ve doğruluk açısından öne çıkar.
  • Unicode desteği mükemmeldir ve bellek eşlemeli araçlardan genellikle daha hızlıdır.

ripgrep'e giriş

Avantajlar

  • Diğer arama araçlarından daha hızlıdır ve .gitignore tarafından yok sayılan dosyaları aramaz.
  • Yalnızca belirli dosya türlerinde arama yapma veya bunları hariç tutma özelliği sunar.
  • grepin birçok özelliğini destekler ve Unicode'u her zaman destekler.
  • İsteğe bağlı olarak PCRE2 düzenli ifade motorunu kullanabilir.
  • Çeşitli metin kodlamalarını ve sıkıştırılmış dosyalarda aramayı destekler.
  • İsteğe bağlı girdi ön işleme filtrelerini destekler.

Karşı görüşler

  • POSIX standardına uymaz ve grep kadar evrensel değildir.
  • Diğer araçlarda bulunan bazı belirli özellikler veya hatalar ripgrep'te olmayabilir.
  • Performansın bazı uç durumlarında ripgrep, diğer araçlardan daha yavaş olabilir.

Kurulum

  • ripgrepin ikili dosya adı rg'dir ve çeşitli platformlarda kurulabilir.
  • Homebrew, Archlinux ve Rust programcıları için kurulum yöntemleri sunulur.
  • Kaynaktan doğrudan derlemek de mümkündür.

Hızlı tur

  • ripgrepin komut satırı kullanımı, diğer benzer araçlardan çok farklı değildir.
  • Terminal çıktısı, renkler ve satır numarası gösterimini otomatik olarak destekler.
  • Çeşitli arama seçenekleri ve desenlerle arama yapılabilir.

ripgrep'in yapısı

Arka plan

  • grep ile ackin türevi araçlar arasındaki farklar ve ortak noktalar açıklanır.
  • ripgrep, grepin büyük dosya arama yeteneğini ve ackin "akıllı" arama varsayılanlarını birleştirir.

Dosya aramaya hazırlık

  • Hızlı dizin yineleyicisi kullanımı ve dosya yolu filtreleme önemlidir.
  • .gitignore dosyasındaki kuralların hızlı uygulanması performansı etkiler.

Arama

  • Hızlı bir düzenli ifade motoru ve literal optimizasyonları önemlidir.
  • Tüm dosyayı satır satır değil, büyük arabellekler hâlinde bir kerede arar.

Çıktı

  • Arama sonuçlarını bir bellek arabelleğine yazar ve bunu stdouta serileştirerek çıktı verir.

Metodoloji

Genel bakış

  • Kullanıcının çözmeye çalıştığı probleme odaklanır ve adil benchmark'lar yapmaya çalışır.
  • Çeşitli araçları benchmark eder ve her aracın varsayılan davranış farklarını dikkate alarak karşılaştırır.

GN⁺ görüşü

Bu yazıdaki en önemli nokta, ripgrepin mevcut arama araçlarına kıyasla hangi avantajlara sahip olduğunu ayrıntılı biçimde açıklamasıdır. Özellikle yüksek performans, Unicode desteği ve çeşitli dosya biçimleri ile kodlamalara verilen destek, bunu kullanıcılar için çekici kılan nedenler olabilir. Yazının ilgi çekici yanı, yeni bir aracın mevcut araçlardan nasıl farklılaştığını ve bu farkın gerçek kullanıcıları nasıl etkileyebileceğini anlamaya yardımcı olmasıdır.

1 yorum

 
GN⁺ 2023-12-01
Hacker News görüşleri
  • ripgrep ve fzf kombinasyonu çok hızlı; bundan yararlanan bir PowerShell fonksiyonu örneği paylaşılıyor. Bu fonksiyon önce ripgrep ile arama yapıyor, ardından fzf ile bulanık arama gerçekleştiriyor ve bat aracılığıyla sonucun bağlamını gösteriyor. Bu yöntem, birden fazla depo projesinde belirli içeriğin konumunu hızlıca bulmak için kullanışlı.
  • Emacs'in project.el paketi ve dumb-jump paketiyle ripgrep kullanma yöntemi tanıtılıyor. dumb-jump, belirli bir proje dizininde mevcut dosya türüne yönelik aramayı otomatik olarak sınırlandırıyor ve ag adlı başka bir hızlı aracı da destekliyor.
  • ripgrepin, Node.js wrapper'ı üzerinden VS Code arama işlevini sağlıyor olması ilginç bulunuyor.
  • ripgrep kullanıcıları, grepe kıyasla kullanım kolaylığı ve hız artışını başlıca nedenler olarak gösteriyor; özellikle gitignore kurallarını otomatik uygulama özelliğini faydalı buluyorlar.
  • ripgrep ve ag gibi paralelleştirilmiş grep alternatifleri, grepten çok daha hızlı olduğu için hız farkının artık büyük bir ölçüt olmadığı, bu araçların başka açılardan değerlendirilmesi gerektiği belirtiliyor.
  • ripgrepin ilk duyurusunun 2016'da yapıldığına dikkat çekiliyor ve başlıkta yıl bilgisinin yer alması öneriliyor.
  • qgrepin indeks kullanarak yüksek hız sunduğu, ancak UTF8 çok satırlı eşleşme gerektiğinde ripgrepin yavaşlayabildiği belirtiliyor.
  • Emacs içinde ripgrep kullanan Consult paketi üzerinden proje genelinde düzenleme yapmaya yönelik kullanışlı bir iş akışı paylaşılıyor.
  • ripgrep-all sürümünün PDF ve doc dosyaları gibi diğer belge türlerinde de çalıştığı bilgisi veriliyor.
  • grepin neden değiştirilmediği veya iyileştirilmediği sorgulanıyor ve bu konunun biraz eski olduğu değerlendiriliyor.