Dizin oluşturmadan dosyaların içindeki dizeleri aramak için araçlar [kapalı]


170

İnanılmaz eski bir uygulamada bazı bağlantı dizelerini değiştirmek zorundayım ve bunu yapan programcılar, her yerde bağlantı dizeleriyle tüm uygulamayı sıvamanın harika bir fikir olacağını düşündüler.

Visual Studio'nun "mevcut proje" araması inanılmaz derecede yavaş ve Windows Arama'ya güvenmiyorum.

Peki, orada en iyi ücretsiz, dizine eklenmemiş metin arama aracı nedir? Tek yapması gereken, bir klasör ve alt klasörlerinde istenen dizeyi içeren dosyaları içeren bir liste döndürmektir.

Windows 2003 Server kullanıyorum.


010 Editorhuuuge dosyalarını 0 saniyede arar.
Morteza Ziyae

Depeche View, bu sayfadaki diğer her şeyi eller. Yardım dosyasını okumak ve öğrenmek için birkaç dakikanızı ayırmak isteyeceğiniz birkaç kısayol vardır. stahlworks.com/dev/depeche-view.html
BVernon

Bunu da çok kullanıyorum, ancak içeriği sağ bölmedeki eşleşmeleri görmek için her bir sonuç dosyasına tıklamaya zorlar. Ayrıca sağ bölmedeki dosya içeriği yakınlaştırılamaz (yazı tipi boyutu çok küçük).
Meryan

Bu yazılım mühendisliği için iyi bir soru, ancak SO üzerinde offtopic. Konuyla ilgili hangi SE ağ sitesi var? Örneğin bkz. 'Arama kod tabanı' ile ilgili SE.SE soruları Bu soruyu tekrar açabilmemiz için taşımalıyız!
smci

1
App Store'daki Dosya İçeriği Bulucu'ya bir göz atın (sorumluluk reddi beyanı - geliştiriciyim). Metin / kaynak dosyalarında, ancak pdf, doc (x), xls (x) ve hatta taranmış jpg / png dosyalarında da arama yapabilir - microsoft.com/en-au/p/file-content-finder/9mzc4sk6j6bp
Geo Systems

Yanıtlar:


60

Orijinal Yanıt

Windows Grep bunu gerçekten iyi yapıyor.

Düzenleme: Windows Grep artık geliştirici tarafından tutulmuyor veya kullanıma sunulmuyor. Alternatif bir indirme bağlantısı burada: Windows Grep - alternatif

Mevcut Cevap

Visual Studio Code , dosyalar arasında mükemmel arama ve değiştirme yeteneklerine sahiptir. Son derece hızlıdır, değiştirmeden önce normal ifadeyi ve canlı önizlemeyi destekler.

resim açıklamasını buraya girin



10
Makinemde (Windows 7), iki kez çöktü. Başka bir şey deneyeceğim.
B.Chil Shannon

2
Eski, benim için de çöktü. Bazı goller için mükemmel olmasa bile grepWin daha iyi imoh
Paolo

9
AstroGrep de hızlı ve istall değil
Zorb

Windows 7'de benim için iyi çalıştı - çökme yok
w5m

364

Ben Notepad ++ 'da Dosyaları Bul iletişim kutusunun hayranıyım . Bonus : Ücretsiz.

resim açıklamasını buraya girin


Maalesef tüm Microsoft Word dosyalarını arayamaz - veya etmez -. ".Doc" ve ".docm" arasındaki farkla ilgili bir şey şüpheliyim
Carl Witthoft

11
@CarlWitthoft .docm, like .docx, .xlsmve .xlsxaslında sıkıştırılmış XML belgeleridir.
Ian Boyd

1
en azından dizüstü bilgisayarımı kullandığımda, normal sayıda dosyaya sahip küçük klasörler için iyi çalışır, birçok dosya klasörüyle büyük boyutlu olarak asılı kalır. Güçlü PC kullanırken biraz daha hızlı. Ayrıca, arama yaparken başka hiçbir dosyayı açamaz.
Mohammed Joraid

Metnimi buldum. Ancak, sonuçlarda hangi değerlerin değiştirileceğini ve hangilerinin saklanacağını seçmeme izin vermedi. Ya hep ya hiç?
ofer.sheffer

5
Bu notepad ++ bile bir seçenek olduğunu hiç bir fikrim yoktu. Eksik dosyaları bulmak için harika bir çözüm! Ancak, büyük dosya boyutları ile ilgili sorunlar var gibi görünüyor. Bazen "açılamayacak kadar büyük dosya" hatası verir.
John Ağustos

167

findstr.exeDosyalarda arama yapabileceğiniz Windows yerleşik bir program da vardır.

>findstr /s "provider=sqloledb" *.cs

3
Basit ve verimli!
Markus Fantone

Bu, Windows Gezgini'nden çok daha hızlıdır ve aslında aradığım metni bulurken, Windows Gezgini'ni kullanmak benim için arama sonuçları vermedi. Teşekkürler.
mbomb007

1
Benim için, bu konuda en iyi cevap çünkü hiçbir şey yüklemenize gerek yok. Benim durumumda bazı argümanlar eklemeyi tamamlamak zorunda kaldım çünkü ekranda görünemeyecek kadar çok bilgi var. / M argümanı, yalnızca aradığım bilgileri içeren dosya adını listeler. Findstr komut kılavuzuna erişmek için "findstr /?" konsolda.
Alexandre Ribeiro

Bu harika bir yardımcıdır, ancak dosya adlarında Kiril karakterlerini okuyamayacağı anlaşılmaktadır. Örneğin:FINDSTR: Cannot open ???????????.txt
Artem Russakovskii

1
findstr, UTF16 metnini desteklemez.
David Bremner

34

AstroGrep'i seviyorum. Sonuçlar bir listede gösterilir. Bir satıra tıklanması, tüm satırı isabeti vurgulayan bir önizleme olarak gösterir. Oldukça hızlı, yalın görünüyor ve ücretsiz. Windows 7, 8, 10 ve Windows Server 2008 R2'de test edilmiştir. Düzenli ifadelere izin verir.

En son AstroGrep Ekran Görüntüsü

AstroGrep bir Microsoft Windows GUI Dosya Arama (grep) yardımcı programıdır. Özellikleri arasında düzenli ifadeler, çok yönlü yazdırma seçenekleri, en son kullanılan yolları saklar ve kaynak koduna bakmak için çok hoş bir "bağlam" özelliği bulunur

Referans: AstroGrep


7
Burada listelenen diğerlerinin tümü dışında, klasörler için hariç tutma düzenlerini belirleyen tek şey budur. node_modulesVeya gibi klasörleri atlamaya çalışırken çok yardımcı olabilir bower_components.
Mrchief

1
İlgili
içerikle

1
Ve 'hızlı' ikinci bir sözü hak ediyor ...self == happy
cssyphus

9

Visual Studio'nun klasörlerde araması bulduğum en hızlı şey.

Akıllıca sadece metin (ikili olmayan) dosyaları arar ve diğer klasörlerin aksine (muhtemelen metin dosyaları windows disk önbelleğine sığar) aynı klasörde sonraki aramalar son derece hızlı olduğuna inanıyorum.

VS2010 normal bir sabit disk üzerinde, SSD yok, 26k dosyaları, kaynak kodu ve ikili ikili bir 20GB klasör aramak için 1 dakika sürer. 15k dosya aranır - geri kalanlar ikili dosyalar olduğu için atlanır. Aynı klasörde sonraki aramalar saniyeler sırasına göre yapılır (önbellekten bir şeyler çıkarılana kadar).

Aynı klasör için bir sonraki en yakın buldum grepWin. Yaklaşık 3 dakika. 2000 KB'tan büyük dosyaları hariç tuttum (varsayılan). "İkili dosyaları dahil et" ayarı, aramayı hızlandırma açısından hiçbir şey yapmıyor gibi görünüyor, ikili dosyalara hala dokunuluyor gibi görünüyor (hata?), Ancak arama sonuçlarında görünmüyorlar. Sonraki aramaların tümü aynı 3 dakika sürer - sabit sürücü önbelleğinden yararlanamaz. 200k'den küçük dosyalarla sınırlandırırsam, ilk arama 2.5 dakikadır ve sonraki aramalar saniyeler içinde, yaklaşık önbellekte VS - kadar hızlıdır.

Ajan Ransack ve FileSeek, dev çok gigabaytlık ikili dosyalar da dahil olmak üzere her şeyi aramaktan dolayı, bu klasörde 20 dakika civarında çok yavaş. Kaynak Monitörüne göre saniyede yaklaşık 10-20MB oranında arama yaparlar.

GÜNCELLEME: Ajan Ransack, belirli boyutlardaki dosyaları aramak için ayarlanabilir ve <200KB kesme kullanılarak yeni bir arama için 1: 15 dk ve sonraki aramalar için 5 sn'dir. GrepWin'den daha hızlı ve genel VS kadar hızlı. Sekmelerde birkaç arama tutmak istiyorsanız ve VS son aranan klasörler listesini kirletmek istemiyorsanız ve VS'nin yapmak istemediği görünen ikili dosyaları arama yeteneğini korumak istiyorsanız aslında oldukça güzel. Agent Ransack ayrıca bir explorer bağlam menüsü girişi oluşturur, bu nedenle bir klasörden başlatmak kolaydır. GrepWin ile aynı, ancak daha güzel kullanıcı arayüzü ve daha hızlı.

Yeni arama kurulumum, içerikler için Agent Ransack ve dosya adları için her şey (harika bir araç, anlık sonuçlar!).


3

Microsoft'a ait olmayan araçları yüklemek istemiyorsanız, lütfen Microsoft Sysinternals'tan STRINGS.EXE dosyasını indirin ve bunun gibi bir prosedür yapın:

@echo off
if '%1' == '' goto NOPARAM
if '%2' == '' goto NOPARAM
if not exist %1 goto NOFOLDER

echo ------------------------------------------
echo - %1 : folder
echo - %2 : string to be searched in the folder
echo - PLEASE WAIT FOR THE RESULTS ...
strings -s %1\* | findstr /i %2 > grep.txt
notepad.exe grep.txt

goto END

:NOPARAM rem - input command not correct
echo ====================================
echo Usage of GREP.CMD:
echo   Grep "SearchFolder" SearchString
echo Please specify all parameters
echo ====================================
goto END

:NOFOLDER
echo Folder %1 does not exist
goto END

:END rem - exit
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.