Qual è lo strumento o il metodo migliore per cercare una parola specifica in una base di codice?

StackOverflow https://stackoverflow.com/questions/231189

  •  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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top