Metin dosyası içeriğini komut satırı sorgusu ile indeksleme


3

Günlük notları, YYYYMMDD formatında tarih ile etiketlenmiş bir düz metin dosyasında alıyorum. Bu dosyalar 100 satırdan uzun değildir ve blog tarzı biçiminde yazılır.

Bu dosyaları sanki google tarafından endekslenmiş blog yazılarıymış gibi arama yapabilir, bazı cümle sorgusu en alakalı / en son tarih dosya isimlerini döndürerek, ilgili parçayı içeren bir snippet ile arayabilirim.

İdeal olarak böyle bir şey olurdu:

#searchindex "laptop no sound"

döner:

20100909.txt:

... laptop sesi çalışmıyor ...

20100101.txt

... ses çok yüksek ... hangi laptopu alacağımı tartışmak ...

ve diğerleri ve diğerleri.

Bir Linux platformu üzerinde çalışıyorum (GNOME ile Debian). Beagle ve İzleyici'ye baktım, fakat istediğim şey için fazladan tamamlanmış görünüyorlar.

EDIT: Pek çok öneri grep'i içeriyor, ancak anahtar kelimelerin, tarihin, vb. Yakınlıklarını dikkate alarak, bundan biraz daha güçlü bir şey istiyorum. Bu dosyaların birçoğunda benzer anahtar kelimeler olacak, bu yüzden çok fazla isabet alacağım sadece grep. Endeksleme ek yükünü umursamıyorum.

Yanıtlar:


2

Bunun için grepbir bashişlevde kullanabilirsiniz :

searchindex () işlevi
{
    eğer ["$ #" -gt 0]; sonra
        ls -t | xargs -L1 grep -H -C3 - `echo" $ @ "| s 's / / \\ | / g' `
    fi
}

-C3Bağlamın satır sayısı nerede , sadece eşleşen satırı istiyorsanız onu kaldırabilirsiniz.


1

Başka bir seçenek, bakışları kullanmaktır .

Bu bir dizin oluşturucudur, bu nedenle ilk önce dizini oluşturmalısınız:

glimpseindex -B -H {Directory for index} -f

Dosyaları daha sonra glimpse komutuyla çok güçlü bir şekilde arayabilirsiniz.

Glimpse oldukça eski, ama benim için bu işi yapıyor.


0

Sade bir grep istediğini yapar mı?

$ egrep "dizüstü bilgisayar | ses" * txt
20100101.txt: ses çok yüksek ... hangi laptopu alacağınızı tartışıyor
20100505.txt: sessizliğin sesi
20100606.txt: Yeni bir dizüstü bilgisayar aldım
20100909.txt: dizüstü bilgisayar sesi çalışmıyor

$ egrep "dizüstü bilgisayar. * ses | ses. * dizüstü bilgisayar" * txt
20100101.txt: ses çok yüksek ... hangi laptopu alacağınızı tartışıyor
20100909.txt: dizüstü bilgisayar sesi çalışmıyor

$ grep dizüstü bilgisayar * txt | grep sesi
20100101.txt: ses çok yüksek ... hangi laptopu alacağınızı tartışıyor
20100909.txt: dizüstü bilgisayar sesi çalışmıyor

0

Google-Desktop-Linux, Debian depolarında bulunur ve istediğinizi yapar. Arama kutusunu getirmek için varsayılan kısayol tuşuyla sorununuz varsa, bu düzeltmeyi kullanın . Dizine alınmış dosya türlerini ve konumları sınırlandırabilirsiniz, böylece aşırı yüklenmeyin. Google Desktop’a yerleşmeden önce Beagle’ı ve Tracker’ı denedim.

Üzgünüm komut satırı, ama yine de bir göz atmaya değer.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.