Qual è il modo più rapido (preciso) per cercare una stringa di testo nei file su un computer Windows?


Risposte:


11

Notepad ++ ha l'opzione 'trova nei file', che si trova nel menu 'Cerca'. Ciò ti permetterà di cercare più file in una cartella (puoi specificare la cartella) e ti mostrerà anche i numeri di riga di ogni file . Puoi scegliere se includere sottocartelle e cartelle nascoste nella ricerca e ti permetterà anche di cercare con \ t \ n ecc. E di cercare con espressioni regolari se ne hai bisogno.

Notepad ++ è un editor di programmatori di Windows (non un IDE) ed è anche Open Source.

(Mi rendo conto che probabilmente hai sentito parlare di notepad ++, ma lo sto solo menzionando qui come un'opzione nel caso in cui tu non fossi a conoscenza di questa particolare funzione e per gli altri che si imbattono in questo thread in seguito.

Saluti :)


Sì, devo ammetterlo, ho usato Notepad ++ per questo prima.
Jon Cage,

1
@JonCage c'è qualcuno in questa discussione sevenforums.com/software/… che parla anche come te dicendo "Ammetto" quando si tratta di cose utili. È un modo estremamente strano di parlare. Potresti voler incontrare quella persona. Forse il tuo gemello.
barlop,

Notepad ++ è fantastico. Anche altri editor di programmatori come SciTE hanno funzionalità simili.
TimothyAWiseman,


5

Findstrfunziona sempre per me. Può usare caratteri jolly text * o regex per la stringa di ricerca. Findstr /?per più


5

Sui sistemi Unix è molto probabile che le persone utilizzino grep per fare questo, quindi perché non usare Windows Grep?

http://www.wingrep.com/


Windows Grep a volte può diventare instabile, ma è il programma di ricerca più veloce che abbia mai usato.
yakatz,

@yakatz Grazie per aver menzionato la possibile instabilità con Windows Grep, cercherò un diverso strumento grep / sostituisci!
pacoverflow,

wingrep è fuori produzione, tuttavia grepwin è ancora disponibile e funziona molto bene.
techturtle

3

Ecco una soluzione Powershell:

gci -r $SomePath -filter "*.cpp","*.h" | Select-String $FindThisString

L' -ra gciè per recurse, e naturalmente è facoltativo, come lo sono i due filtri di estensione di file. Un parametro utile di Select-Stringè -listche riporterà solo la prima istanza di una corrispondenza in un file, invece di darti ogni occorrenza di essa per file.

Forse vuoi aprire immediatamente ogni file in cui viene trovata una corrispondenza? Bene, la seguente piccola modifica a quanto sopra è abbastanza utile, a seconda di ciò che hai l'associazione di file predefinita come:

gci -r $SomePath -filter "*.cpp","*.h" | Select-String $FindThisString -list | ii


Stavo per pubblicare la stessa cosa :)
Caleb Jares,

Sei sicuro di -filter "*.cpp","*.h"accettare più estensioni? Questo dovrebbe piuttosto leggere-include ("*.cpp","*.hpp")
mloskot il

2

durante la localizzazione di alcuni SW utilizzo DocFetcher per cercare le stesse stringhe nei file tradotti in precedenza. È gratuito e open-source, ma deve prima creare un indice. Provalo e basta. :-)


1

Usa "stringhe" fornite da M $ . Hanno comprato alcuni ottimi servizi da Sysinternals qualche anno fa. Non richiede installazione, basta rilasciarlo sulla scatola ed eseguirlo per la sintassi. Facile da usare e GRANDE!


1

Un'altra grepimplementazione per Windows da parte dei famosi sviluppatori di tartaruga svn:

grepWin


0

Se sei soddisfatto dalla riga di comando / con Linux. Potrei suggerire di guardare l'installazione di una versione di grep per Windows?

cygwin è un modo abbastanza utile per capirlo e ti darà un ambiente Linux completo, con shell bash e un terminale rxvt. Altrimenti se vuoi solo gli strumenti c'è gnuwin32 ma allora rimarrai bloccato con il prompt di Windows cmd.exe.

Microsoft in realtà ha una propria versione degli strumenti Unix da scaricare, ma sembravano piuttosto lenti rispetto alle porte gnu quando le ho provate. Stanno anche andando a scartarli con Windows 8.


0

È così che cerco stringhe di testo nel registro di Windows o file sul mio computer con Windows XP. Supponiamo di voler trovare la stringa "Enterprise" in un file di testo semplice sull'unità c: quindi scrivere l'output in un file chiamato search_result.txt in c: \ windows \ temp

Apri un prompt dei comandi, quindi digita:

findstr "Enterprise" c: *. txt> c: \ windows \ temp \ search_result.txt

La stringa che cerchi fa distinzione tra maiuscole e minuscole. "Enterprise" e "enterprise" non troveranno la stessa stringa.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.