Alat untuk mencari string di dalam file tanpa mengindeks [ditutup]

170

Saya harus mengubah beberapa string koneksi dalam aplikasi lawas yang sangat tua, dan programmer yang membuatnya berpikir itu akan menjadi ide bagus untuk memplester seluruh aplikasi dengan string koneksi di semua tempat.

Pencarian "proyek saat ini" Visual Studio sangat lambat, dan saya tidak mempercayai Pencarian Windows.

Jadi, apa alat pencarian teks gratis dan non-indeks terbaik di luar sana? Yang harus dilakukan adalah mengembalikan daftar dengan file yang berisi string yang diinginkan di dalam folder dan subfoldernya.

Saya menjalankan Windows 2003 Server.

kitsune
sumber
010 Editormencari file huuuge dalam 0 detik.
Morteza Ziyae
Depeche View mengalahkan semua hal lain di halaman ini, tangan ke bawah. Ada beberapa cara pintas yang Anda perlukan beberapa menit untuk membaca file bantuan dan belajar. stahlworks.com/dev/depeche-view.html
BVernon
Saya juga sering menggunakan ini, namun itu memaksa Anda untuk mengklik pada setiap file hasil untuk melihat konten yang cocok di panel kanan. Juga konten file di panel kanan tidak dapat diperbesar (ukuran font terlalu kecil).
Meryan
Ini adalah pertanyaan yang bagus untuk rekayasa perangkat lunak, tetapi tidak aktif pada SO. Situs jaringan SE mana yang sesuai topik? Lihat misalnya pertanyaan SE.SE pada 'basis kode pencarian'. Kita harus memigrasikan pertanyaan ini sehingga dapat dibuka kembali!
smci
1
Lihat File Content Finder di app store (penafian - saya pengembang). Ia dapat mencari dalam file teks / sumber, tetapi juga dalam pdf, doc (x), xls (x), dan bahkan memindai file jpg / png - microsoft.com/en-au/p/file-content-finder/9mzc4sk6j6bp
Geo Systems

Jawaban:

60

Jawaban Asli

Windows Grep melakukan ini dengan sangat baik.

Sunting: Windows Grep tidak lagi dikelola atau disediakan oleh pengembang. Tautan unduhan alternatif ada di sini: Windows Grep - alternate

Jawaban Saat Ini

Visual Studio Code memiliki kemampuan pencarian dan penggantian yang luar biasa di seluruh file. Ini sangat cepat, mendukung regex dan pratinjau langsung sebelum penggantian.

masukkan deskripsi gambar di sini

RedFilter
sumber
10
ss64.com/nt/findstr.html
JohnnyFromBF
10
Di komputer saya (Windows 7), macet dua kali. Saya akan mencoba sesuatu yang lain.
B. Clay Shannon
2
Itu sudah tua, itu juga crash untuk saya. Bahkan jika tidak sempurna untuk beberapa tujuan, grepWin lebih baik imoh
Paolo
9
AstroGrep juga cepat dan tidak ada masalah
Zorb
Bekerja dengan baik untuk saya di Windows 7 - tanpa crash
w5m
364

Saya penggemar dialog Find-In-Files di Notepad ++ . Bonus : Gratis.

masukkan deskripsi gambar di sini

BQ.
sumber
Yang sayangnya tidak bisa - atau tidak - mencari semua file Microsoft Word. Sesuatu tentang perbedaan antara ".doc" dan ".docm" Saya kira
Carl Witthoft
11
@CarlWitthoft .docm, like .docx,, .xlsmdan .xlsxsebenarnya adalah zip dokumen XML.
Ian Boyd
1
ini berfungsi baik untuk folder kecil dengan jumlah file normal, hang untuk ukuran besar dengan banyak folder file, setidaknya ketika saya menggunakan laptop saya. Sedikit lebih cepat saat menggunakan PC yang kuat. Selain itu, saat sedang mencari, tidak dapat membuka file lain.
Mohammed Joraid
Ditemukan teks saya. Namun, tidak mengizinkan saya untuk memilih di hasil mana nilai yang diganti dan yang harus disimpan. Semua atau tidak?
ofer.sheffer
5
Tidak tahu ini bahkan pilihan di notepad ++. Solusi hebat untuk menemukan file yang hilang! Namun, tampaknya memiliki masalah dengan ukuran file besar. Kadang-kadang ini memberikan kesalahan "file terlalu besar untuk dibuka".
John
167

Ada juga program bawaan Windows yang disebut findstr.exedengan mana Anda dapat mencari di dalam file.

>findstr /s "provider=sqloledb" *.cs
JohnnyFromBF
sumber
3
Sederhana dan efisien!
Markus Fantone
Ini jauh lebih cepat daripada Windows Explorer dan benar-benar menemukan teks yang saya cari, sedangkan menggunakan Windows Explorer tidak menghasilkan hasil pencarian untuk saya. Terima kasih.
mbomb007
1
Bagi saya, jawaban terbaik tentang topik ini karena Anda tidak perlu menginstal apa pun. Dalam kasus saya, saya harus melengkapi menambahkan beberapa argumen karena terlalu banyak informasi untuk ditampilkan di layar. Argumen / M mencantumkan hanya nama file yang memiliki informasi yang saya cari. Untuk mengakses manual perintah findstr, ketikkan "findstr /?" di konsol.
Alexandre Ribeiro
Ini adalah kegunaan yang bagus, tetapi sepertinya tidak bisa membaca karakter Cyrillic dalam nama file. Misalnya:FINDSTR: Cannot open ???????????.txt
Artem Russakovskii
1
findstr tidak mendukung teks UTF16.
David Bremner
34

Saya suka AstroGrep. Hasilnya ditampilkan dalam daftar. Sebuah klik pada sebuah baris menunjukkan Anda seluruh baris sebagai pratinjau yang menyoroti hit. Tampaknya cukup cepat, ramping dan gratis. Diuji pada Windows 7, 8, 10 dan Windows Server 2008 R2. Mengizinkan ekspresi reguler.

Screenshot AstroGrep Terbaru

AstroGrep adalah utilitas Pencarian Berkas Microsoft Windows GUI (grep). Fitur-fiturnya termasuk ekspresi reguler, opsi pencetakan serbaguna, menyimpan jalur yang paling baru digunakan dan memiliki fitur "konteks" yang sangat bagus untuk melihat kode sumber

Referensi: AstroGrep

Anytoe
sumber
7
Dari semua yang lain yang tercantum di sini, ini adalah satu-satunya yang memungkinkan menentukan pola pengecualian untuk folder. Sangat membantu ketika mencoba untuk melewatkan folder seperti node_modulesatau bower_components.
Mrchief
1
Perangkat lunak yang sangat baik, cepat, dapat dikonfigurasi, dan menampilkan file beserta konteks terkait
HanniBaL90
1
Dan 'puasa' layak disebutkan kedua ...self == happy
cssyphus
9

Pencarian Visual Studio dalam folder sejauh ini adalah yang tercepat yang saya temukan.

Saya percaya itu secara cerdas hanya mencari file teks (non-biner), dan pencarian selanjutnya di folder yang sama sangat cepat, tidak seperti alat-alat lain (kemungkinan file teks masuk dalam cache disk windows).

VS2010 pada hard drive biasa, tanpa SSD, membutuhkan waktu 1 menit untuk mencari folder 20GB dengan file 26k, kode sumber dan binari tercampur. 15k file dicari - sisanya kemungkinan dilewati karena menjadi file biner. Pencarian selanjutnya di folder yang sama berada di urutan detik (sampai barang-barang diusir dari cache).

Yang terdekat berikutnya yang saya temukan untuk folder yang sama adalah grepWin. Sekitar 3 menit. Saya mengecualikan file lebih besar dari 2000KB (default). Pengaturan "Sertakan file biner" tampaknya tidak melakukan apa-apa dalam hal mempercepat pencarian, sepertinya file biner masih tersentuh (bug?), Tetapi mereka tidak muncul dalam hasil pencarian. Pencarian selanjutnya semua membutuhkan waktu 3 menit yang sama - tidak dapat memanfaatkan cache hard drive. Jika saya membatasi file yang lebih kecil dari 200k, pencarian awal adalah 2,5 menit dan pencarian berikutnya berada di urutan detik, sekitar secepat VS - dalam cache.

Agen Ransack dan FileSeek keduanya sangat lambat pada folder itu, sekitar 20 menit, karena mencari melalui segalanya, termasuk file biner multi-gigabyte raksasa. Mereka mencari sekitar 10-20MB per detik menurut Resource Monitor.

UPDATE: Agent Ransack dapat diatur untuk mencari file dengan ukuran tertentu, dan menggunakan <200KB cutoff itu 1: 15 menit untuk pencarian baru dan 5 detik untuk pencarian selanjutnya. Lebih cepat dari grepWin dan secepat VS keseluruhan. Sebenarnya cukup bagus jika Anda ingin menyimpan beberapa pencarian di tab dan Anda tidak ingin mencemari daftar folder VS yang baru saja dicari, dan Anda ingin menjaga kemampuan untuk mencari biner, yang sepertinya tidak ingin dilakukan oleh VS. Agent Ransack juga membuat entri menu konteks explorer, sehingga mudah diluncurkan dari folder. Sama seperti grepWin tetapi UI lebih bagus dan lebih cepat.

Setup pencarian baru saya adalah Agent Ransack untuk konten dan Semuanya untuk nama file (alat luar biasa, hasil instan!).

Steve
sumber
3

Jika Anda tidak ingin menginstal alat-alat non-Microsoft, silakan unduh STRINGS.EXE dari Microsoft Sysinternals dan buat prosedur seperti ini:

@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
FIBA
sumber