Come suggerisce il titolo, qual è il modo più rapido (preciso) per trovare quali linee di quali file corrispondono a una particolare stringa.
In particolare, sto cercando .cppe .hfile.
Come suggerisce il titolo, qual è il modo più rapido (preciso) per trovare quali linee di quali file corrispondono a una particolare stringa.
In particolare, sto cercando .cppe .hfile.
Risposte:
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 :)
L'agente Ransack funziona come un fascino. Scaricalo qui .
Sui sistemi Unix è molto probabile che le persone utilizzino grep per fare questo, quindi perché non usare Windows Grep?
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
-filter "*.cpp","*.h"accettare più estensioni? Questo dovrebbe piuttosto leggere-include ("*.cpp","*.hpp")
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. :-)
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.
È 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.