Pergunta

Tenho a tarefa de rotular um aplicativo em branco para que ele não contenha referências à nossa empresa, site, etc.O problema que estou enfrentando é que tenho muitos padrões diferentes para procurar e gostaria de garantir que todos os padrões sejam removidos.Como a aplicação não foi desenvolvida internamente (inteiramente), não podemos simplesmente procurar ocorrências em messages.properties e pronto.Devemos passar por JSP's, código Java e xml.

Estou usando o grep para filtrar resultados como este:

grep SOME_PATTERN . -ir | grep -v import | grep -v // | grep -v /* ...

Os padrões escapam quando os uso na linha de comando;no entanto, não acho que essa correspondência de padrões seja muito robusta.Pode haver ocorrências que importem (improvável) ou mesmo /* (o início de um comentário javadoc).

Toda a saída de texto para a tela deve vir de uma declaração de string em algum lugar ou de um arquivo de constantes.Então, posso assumir que encontrarei algo como:

public static final String SOME_CONSTANT = "SOME_PATTERN is currently unavailable";

Gostaria de encontrar essa ocorrência, bem como:

public static final String SOME_CONSTANT = "
SOME_PATTERN blah blah blah";

Alternativamente, se tivéssemos um rastreador interno/testes automatizados, eu poderia simplesmente extrair o xhtml de cada página e verificar a fonte para garantir que estava limpa.

Foi útil?

Solução

eu usaria sed, não grep! O SED é usado para executar transformações básicas de texto em um fluxo de entrada. Tentar s/regexp/replacement/ opção com comando sed.

Você também pode tentar Awk comando. Tem uma opção -F Para a separação dos campos, você pode usá -lo com ; para separar linhas de seus arquivos com ;.

A melhor solução será, no entanto, um script simples em Perl ou em Pitão.

Outras dicas

Para resolver sua preocupação com a falta de algumas ocorrências, por que não filtrar progressivamente:

  1. Crie um arquivo de texto com todos os possíveis como ponto de partida.
  2. Use o filtro X (grep para '^import', por exemplo) para despejar prováveis falsos positivos em um arquivo tmp.
  3. Use o filtro X novamente para removê-los correspondências do seu arquivo de trabalho (a cópia de [1]).
  4. Faça uma rápida passagem visual do tmp arquivar e adicionar quaisquer correspondências reais de volta em.
  5. Repita [2]-[4] com outros filtros.

Isso pode levar algum tempo, é claro, mas não parece que isso seja algo que você queira errar...

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