Bir klasördeki dosyaların içindeki dizeleri nasıl ararım?


98

Komut satırı aramalarını önlemek için ASCII dosyalarının içinde bir dize araması yapmak için herhangi bir yardımcı program var mı?

Örneğin, dizindeki tüm dosyaların içinde "test" dizesi için bir komut satırı araması nasıl yapılır /var/x/?


15
Gerçekten demek olmadan komut satırını kullanarak? Çünkü bunun için en iyi araç grep ...
alci

CLI Açık Silver Searcher muhtemelen daha iyi bir iş çıkarır.
Pablo A

Yanıtlar:


78

Searchmonkey'i kullanabilirsiniz. Bu araç depolarda bulunur;

sudo apt-get install searchmonkey

Öte yandan, grep ile komut satırı arama gerçekten bunun için tasarlanmıştır ...

İşte searchmonkey'den bir ekran görüntüsü

görüntü tanımını buraya girin


çok fazla yüklenme nedeniyle çöktü :(
WiredIn

1
searchmonkey ile ilgili sorunlar yaşadım. O olaylardan slipleri sürü sağlayan anlamda güvenilir değildir
Tony gil

GUI'den "searchmonkey" i nasıl çalıştırabilirim? Komut satırını kullanarak yükledikten sonra, ben daha çok komut satırını kullanmamayı tercih
Echeban

153

İlk sorunuzun grepkomuta alternatif bir GUI hakkında olduğunu varsayıyorum . Size bu konuda yardımcı olamam, komut satırını her zaman çok etkili buluyorum.

Komut satırı gelince, deneyin

grep "test" /var/x/*

Özyinelemeli olarak aramak istiyorsanız (yalnızca içeride değil /var/x/, aynı zamanda alt dizinlerinde de)

grep -R "test" /var/x/

Grep dosyasının ikili olduğunu düşünen dosyalara dokunmamak için aşağıdaki -Iseçeneği kullanın:

grep -I "test" /var/x/

Grep bir dosyanın ikili olduğunu düşünüyorsa (dosyanın ilk birkaç baytına bağlı olarak), dosyanın tamamını görüntülemek yerine eşleşmediğini varsayacaktır.


1
Klasör bazı ascii olmayan dosyalar içeriyorsa işe yarar mı?
Anwar

1
: Eğer maç Eh, grep da bunu bir ikili dosyadaki dize aramak deneyin ve rapor verecekBinary file file.jpg matches
Ocak

1
@Canary İkili bir dosya metin olarak okunduğunda, genellikle aşırı derecede uzun "çizgiler" vardır (çünkü bir satırın sonunu belirtmek için yorumlanacak bir karakter veya karakter dizisi uzun süre veya hiç görünmeyebilir). Bir metin arama yardımcı programının uygulanma biçimine bağlı olarak, bu, her "satır" tamamen belleğe okunduğunda ve arama dizesiyle eşleşip eşleşmediğini kontrol etmek için performans sorunlarına neden olabilir (bu grepkodun kodlanmasının makul bir yoludur. Ubuntu'nun grepbu şekilde yazılmış olup olmadığını bilmiyorum ).
Eliah Kagan,

1
büyük / küçük harf duyarlı olmayan arama için "grep -i"
Czarek Tomczak

3
Bir olmalıdır *yolu veya grep son çizgiden sonra 14.04 herhangi işi yapmak için görünmüyor
DavidScherer

20

Regexxer'i kullanabilirsiniz , normal ifadeler için harika bir GUI arama / değiştirme aracıdır.

tarafından indirebilirsiniz:

sudo apt-get install regexxer

görüntü tanımını buraya girin


süper hızlı, ancak bu uygulama ile ilgili sorunlar şunlardır: 1. salt okunur bir modu yok, bu yüzden yanlışlıkla bir şey değiştirmem veya silmem 2. metni gösterir, ancak belirli bir özelliğe geçmeyecek Desenin eşleştiği çizgi. (Rengi parlak kırmızıya
çevirdikten

6

Şimdiye kadar kullandığım en iyi GUI olan Recoll'ı deneyin. Recoll'u şu anda desteklenen tüm Ubuntu sürümlerine kurmak için terminali açın ve şunu yazın:

sudo apt install recoll

Önce dosyaları dizine eklemek biraz zamana ihtiyaç duyar (kara liste yolu veya uzantıları veya mime tanımlayabilirsiniz).


Ben Recoll göre tamamen başka bir dünya olduğunu teyit edebilir gnome-search-toolya search-monkey. Xapian kullanır, böylece kelime belgelerini (hem .doc ve .docx), pdf dosyalarını, posta klasörlerini vb. İnceleyebilir ve indeksleyebilir.
Avio

Uh, deb packaging ( sudo apt install recoll) 'dan edinilebilir ve grep'in bile başarısız olduğu yerlerde işini yapar, örneğin pkzip sıkıştırması ile sıkıştırılmış .docx belgeleriyle.
Avio

recollÖncelikle bina endeksi gerektirdiğine dikkat edin .
Yrogirg

5

grepKomutu terminalden kullanabilirsiniz :

grep -r string *

Bu komut, geçerli dizinin (veya alt dizinlerin) altındaki tüm dosyalarda "string" nin tüm oluşumlarını bulacaktır.

Gizli dosyalar için şunları kullanabilirsiniz:

grep -r string ..


2

Ne yazık ki grep, Word (.doc) dosyalarında arama yapmak için çok zayıf bir iş çıkarsa da, catdoc çıktısını grep içine yönlendirebilirsiniz. Programcı değilim ama bu küçük senaryo benim için iyi çalışıyor:

#!/bin/bash
export GREP_OPTIONS='--color=auto'
echo -e "\n
Welcome to scandocs. This will search .doc (NOT .docx) files in this directory for a given string. \n
Type in the text string you want to find... \n"
read response
find . -name "*.doc" | 
while read i; do catdoc "$i" | 
grep -iH --label="$i" "$response"; done

Tüm iyileştirmeler ve önerilerinizi bekliyoruz!


1
Bu soru grafiksel uygulamalar ve düz metin dosyaları ile ilgiliydi. Ben emin değilim grepve .docsoru ile ilgisi var.
Andrea Corbellini

Tamam görünüyor, Ocak ayının detaylı cevabını görün grep.
aquaherd

2

İşi yapmak için basit bir araç yayınladım. Çoğunlukla yazılım geliştirici için düşünüldüğünde, aynı pencerede birkaç dosya açma (benzersiz?) Özelliğine sahiptir. Sonuçları Ace editörü (önerilen!) Veya html textarea kullanarak tarayıcıda sunar. Java tabanlı bir araçtır, bu nedenle linux'da olduğu gibi pencerelerde de çalışır.

bunu kontrol et!

https://sourceforge.net/projects/queacetu.gastona.p/


1

https://askubuntu.com/a/1141367/47073 başına

Kullanılabilir mate-search-tool, ki gnome-search-toolkaldırılmış olanla aynı şey . Searchmonkey ile ilgili sorunlar yaşadım, bazı sonuçlar eksikti ve yavaştı, tavsiye etmedim.

Yüklemek için mate-search-tool:

sudo apt install mate-utils
mate-search-tool

0

Bir klasördeki dosyaların içindeki dizeleri aramak için menüden Sublime Text Find in Files seçeneğini kullanabilirsiniz Find.

Sublime Text 3'ü yüklemek için

sudo add-apt-repository ppa:webupd8team/sublime-text-3
sudo apt-get update
sudo apt-get install sublime-text-installer

Ayrıca takip edebilir bu yüklemenin diğer olası yollarını soru Sublime üzerinde Ubuntu .

Sublime Text içindeki bir klasördeki bir dizgenin tüm dosyalarında arama yapmak için, daha net cevaplar için bu soruyu takip edebilirsiniz .

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.