Qual è lo strumento o il metodo migliore per cercare una parola specifica in una base di codice?
-
04-07-2019 - |
Domanda
Quale strumento o metodo mi consigliate per trovare e sostituire i valori nel tuo codice? Se il codice è su Linux / Unix, trovare e grep è il metodo migliore?
Soluzione
Dai un'occhiata a ack , progettato per la ricerca di basi di codice di grandi dimensioni.
Per la sostituzione, guarda i flag -i, -p e -e di Perl. Puoi fare cose come:
$ perl -i -p -e's/\bthisword\b/thatword/g' $(find . -name *.html)
per sostituire tutte le istanze di questa parola con quella parola in tutti i file .html nella struttura.
Altri suggerimenti
Suppongo che intendi rinominare una variabile.
Dipende dal corpo del codice. Per C #, lo strumento di ridenominazione di Visual Studio è molto buono. Ricorda che affinché funzioni in modo affidabile, è necessario che la ridenominazione funzioni di pari passo con il compilatore / interprete, quindi puoi assicurarti di apportare le modifiche solo nel giusto ambito.
Se si tratta di una ricerca / sostituzione molto semplice, sicuramente il piccolo blocco note farebbe un lavoro OK?
find
e grep
troveranno la parola che stai cercando, ma per sostituirla devi usare sed
, awk
o il tuo filtro di modifica dello stream preferito.
groovy
, python
, perl
eseguiranno tutte le operazioni di ricerca / sostituzione - usa il tuo preferito o scegline uno per imparare.
Per operazioni su una base di codice, userò find | sed
per operazioni semplici ( cygwin
è tuo amico) e la ricerca / sostituzione dell'IDE con supporto regex per operazioni più complesse. Eclipse, Idea, Visual Studio e persino SQL Server Manglement Studio hanno potenti funzioni di ricerca / sostituzione. La cattiva notizia è che non tutti usano la stessa sintassi regex.
Dai un'occhiata a PowerGrep ... ha annunci ovunque in SO. Sto iniziando a volerlo anche quando non ne ho davvero bisogno-
PD: hanno una demo gratuita di 15 giorni, quindi se questo è un piccolo lavoro potresti semplicemente usare la demo.
Questo è solo un suggerimento per la risposta sopra accettata di Andy. Impossibile aggiungere questo come commento a causa della minore reputazione
Usa! come separatore quando hai difficoltà a fuggire dalle stringhe
ad esempio $ perl -i -p -e's! \ bthisword \ b! thatword! g '$ (find. -name * .html)
find e grep non creano indecie, quindi saranno sempre più lenti delle alternative che lo fanno. Detto questo, funzionano bene se la tua base di codice è solo una dozzina di file. In Fi
Eclipse ha una bella funzione di ricerca dei file (Ctrl + H). Può anche prendere in considerazione la semantica del linguaggio se hai i plugin giusti (Java funziona subito, ovviamente). L'unica avvertenza è che può essere un po 'lento la prima volta che esegui una ricerca in un determinato set di file.