kutombawewe.net

Strumenti per cercare stringhe all'interno di file senza indicizzazione

Devo modificare alcune stringhe di connessione in un'applicazione legacy incredibilmente vecchia e i programmatori che l'hanno fatto hanno pensato che sarebbe stata una buona idea ritoccare l'intera app con stringhe di connessione dappertutto.

La ricerca del "progetto corrente" di Visual Studio è incredibilmente lenta e non mi fido della ricerca di Windows.

Quindi, qual è il miglior strumento gratuito per la ricerca di testo non indicizzato? Tutto ciò che dovrebbe fare è restituire una lista con i file che contengono la stringa desiderata all'interno di una cartella e delle sue sottocartelle.

Sono in esecuzione Windows 2003 Server.

160
kitsune

Windows Grep lo fa davvero bene.

Modifica: Windows Grep non viene più gestito o reso disponibile dallo sviluppatore. Un link di download alternativo è qui: Windows Grep - alternate

60
RedFilter

Sono un fan della finestra di dialogo Find-In-Files in Notepad ++ . Bonus : è gratuito.

enter image description here

347
BQ.

Esiste anche un programma integrato di Windows chiamato findstr.exe con il quale è possibile cercare all'interno dei file.

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

Agent Ransack è un altro buono. È veloce, gratuito e ha alcune altre funzionalità di Nizza come l'integrazione di Shell.

Agent Ransack screenshot

40
snowdude

Mi piace AstroGrep. I risultati sono mostrati in una lista. Un clic su una riga mostra l'intera linea come un'anteprima che evidenzia l'hit. Sembra essere abbastanza veloce, magro ed è gratuito. Testato su Windows 7, 8, 10 e Windows Server 2008 R2. Permette espressioni regolari.

Latest AstroGrep Screenshot

AstroGrep è un'utilità di ricerca file (grep) di Microsoft Windows GUI. Le sue caratteristiche includono espressioni regolari, opzioni di stampa versatili, memorizza i percorsi più recenti utilizzati e ha una funzione di "contesto" che è molto bella per guardare il codice sorgente

Riferimento: AstroGrep

34
Anytoe

Sono un grande fan di grepWin . È gratuito, leggero e disponibile dalla shell di Explorer. Mi piace non dover cercare e avviare deliberatamente un programma per cercare qualcosa. Posso semplicemente fare clic destro in Explorer e portarlo su.

11
Dan Rigby

SeekFast è molto conveniente per cercare il testo nei file - file di testo, MS Word, Excel, OpenOffice e altri. Ha una versione gratuita.

10
pamir_miren

La ricerca di Visual Studio in cartelle è di gran lunga la più veloce che ho trovato.

Credo che cerchi in modo intelligente solo i file di testo (non binari) e le ricerche successive nella stessa cartella siano estremamente veloci, a differenza degli altri strumenti (probabilmente i file di testo si adattano alla cache del disco di Windows).

VS2010 su un normale disco fisso, senza SSD, impiega 1 minuto per cercare una cartella da 20 GB con 26k di file, codice sorgente e file binari mescolati. Vengono cercati file 15k - il resto è probabilmente saltato a causa di file binari. Le ricerche successive nella stessa cartella sono nell'ordine dei secondi (fino a quando le cose non vengono sfrattate dalla cache).

Il prossimo più vicino che ho trovato per la stessa cartella era grepWin. Circa 3 minuti. Ho escluso file più grandi di 2000 KB (predefinito). L'impostazione "Includi file binari" sembra non fare nulla in termini di velocizzazione della ricerca, sembra che i file binari siano ancora toccati (bug?), Ma non vengono visualizzati nei risultati di ricerca. Le ricerche successive prendono tutti gli stessi 3 minuti - non possono sfruttare la cache del disco rigido. Se limito i file inferiori a 200k, la ricerca iniziale è di 2.5 minuti e le ricerche successive sono nell'ordine dei secondi, circa la velocità di VS - nella cache.

Agent Ransack e FileSeek sono entrambi molto lenti su quella cartella, circa 20 minuti, a causa della ricerca di tutto, compresi i file binari giganti giganti. Cercano a circa 10-20 MB al secondo in base a Monitor risorse.

AGGIORNAMENTO: Agent Ransack può essere impostato per cercare file di determinate dimensioni, e usando il taglio <200KB è 1: 15min per una nuova ricerca e 5 secondi per le ricerche successive. Più veloce di grepWin e veloce come VS in generale. In realtà è piuttosto bello se si desidera mantenere più ricerche in schede e non si vuole inquinare l'elenco delle cartelle di ricerca recenti VS, e si vuole mantenere la capacità di cercare i binari, che VS non sembra voler fare. Agent Ransack crea anche una voce del menu di contesto Explorer, quindi è facile da avviare da una cartella. Uguale a grepWin, ma più bello dell'interfaccia utente e più veloce.

La mia nuova configurazione di ricerca è Agent Ransack per i contenuti e Tutto per i nomi dei file (strumento fantastico, risultati immediati!).

9
Steve

FileSeek . È veloce ed è gratuito. Può trovare stringhe di testo o corrispondere a espressioni regolari.

9
Jon Tackabury

TextPad è veramente buono per questo genere di cose. Puoi usarlo gratuitamente, ma ricevi un messaggio di avviso che ti chiede di acquistarlo. Oltre a questo è uno strumento eccellente a tutto tondo.

3
Simon

È possibile installare cygwin (richiede un po 'di tempo) e utilizzare grep -R.

2
Ruben

Se non si desidera installare strumenti non Microsoft, fare clic download STRINGS.EXE da Microsoft Sysinternals e creare una procedura come questa:

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

FileSearchy . È veloce e gratuito. Ha indicizzazione, ma solo per nomi di file e non contenuti.

1
lightstep

Tendo ad usare sempre grep o find da nxutils . Funziona alla grande su ms-windows.

1
Jonke

Vorrei raccomandare GOW su cygwin, in quanto è molto più leggero, ma include ancora grep e altri utilities da riga di comando 130 o più * nix in 18 MB anziché> 100 MB.

1
TechSpud

Se stai cercando un'utilità basata su console per farlo, puoi fare riferimento a questo URL e crearne uno per te stesso.

http://www.dotnetlogic.net/articles/search-for-filename-or-text-inside-other-files-in-directory-using-c/

ciò che fa è trovare l'elenco di testo di ricerca nella cartella e restituire il file con lo stesso nome restituisce anche se alcuni file contiene anche il testo

1
Pankaj Singh

Posso raccomandare ack - un programma a riga di comando con linux roots, che fortunatamente funziona benissimo anche su Windows. È più veloce di grep, ignora le directory git/Subversion e i file binari e l'output è più comprensibile. E digitando ack è il 25% più veloce di grep;)

http://beyondgrep.com/

L'ho provato su babun (cygwin) e msys da git - funziona favolosamente. È scritto in Perl, quindi dovrebbe funzionare anche in cmd.exe con Perl installato da qualche parte sul sistema operativo.

Per Windows, puoi provare "Seekfast" lo fa automaticamente. Qui https://seekfast.org collegamento sicuro.

0
Koshmaar