Qual é a melhor ferramenta ou método para procurar uma palavra específica em uma base de código?

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

  •  04-07-2019
  •  | 
  •  

Pergunta

Que ferramenta ou método que você recomenda para localizar e substituir valores em seu código? Se o código é em Linux / Unix, são encontrar e grep o melhor método?

Foi útil?

Solução

Dê uma olhada ack , que é projetado para pesquisar grandes bases de código.

Para substituir, olhada bandeiras -i, -p e -e do Perl. Você pode fazer coisas como:

$ perl -i -p -e's/\bthisword\b/thatword/g' $(find . -name *.html)

para substituir todas as instâncias do thisword com thatword em todos os arquivos .html na árvore.

Outras dicas

Eu estou supondo que você pretende mudar o nome de uma variável.

Depende do que o corpo de código é. Para C #, ferramenta de renomeação do Visual Studio é muito bom. Lembre-se que para que ele funcione de forma confiável, é necessário a mudança de nome para trabalhar lado a lado com o compilador / intérprete, assim você pode ter certeza que você só fazer a mudança no escopo direita.

Se é um achado muito simples / substituir, certamente o bloco de notas humilde faria um trabalho OK?

find e grep vai encontrar a palavra que você está procurando, mas para substituí-lo você precisa usar sed, awk ou seu filtro editar fluxo favorito.

groovy, python, perl tudo vai fazer pesquisa / operações substituir -. Usar o seu favorito ou escolher um para aprender

Para operações em uma base de código, eu vou usar find | sed para operações simples (cygwin é seu amigo) e pesquisa do IDE / substituir com o apoio regex para operações mais complexas. Eclipse, Idea, Visual Studio e até mesmo SQL Server Manglement Estúdio tem busca poderosa / substituir funções. A má notícia é que nem todos eles usam a mesma sintaxe regex.

Dê uma olhada na PowerGrep ... tem anúncios em todos os lugares no SO. Eu estou começando a querer que mesmo quando eu realmente não precisa -

PD:. Eles têm um 15 dias de demonstração gratuita, por isso, se este é um pequeno trabalho que você poderia usar apenas a demo

Esta é apenas uma dica acima answer.could aceita de Andy não adicionar isso como um comentário devido à menor reputação

Use! como um separador quando você tem tempo difícil escapar das cordas

por exemplo $ perl -i -p do -e! \ Bthisword \ b! Thatword! G' $ (encontrar. -Name * .html)

encontrar e grep não construir indecies, então eles vão sempre ser mais lento do que as alternativas que fazem. Dito isto, eles trabalham muito bem se a sua base de código é apenas algumas dezenas files.in Fi

Eclipse tem um bom pesquisa de arquivo recurso (Ctrl + H). Ele também pode levar semântica da linguagem em consideração se você tem os plugins corretos (Java funciona fora da caixa, é claro). A única ressalva é que ele pode ser um pouco lento na primeira vez que você busca em um determinado conjunto de arquivos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top