Bash Script find and replace

Faz substituição no texto de arquivos.
A linha de comando abaixo faz uma procura e substitui todas as ocorrências em arquivos textos da palavra “procure_por_isso” nos diretórios abaixo de “/home/meu_diretorio” e substitui por ”substitua_por_isso”.
.
find "/home/meu_diretorio" -type f -exec sed -i "" -e s/procure_por_isso/"substitua_por_isso"/g {} \;
.
.
Faz substituição no nome de arquivos e diretórios
O script abaixo renomeia todos os arquivos e diretórios com o nome de “procure_por_isso” e substitui por “substitua_por_isso” a partir do diretório “/home/procure_por_aqui”
.
  FILES=$(find /home/procure_por_aqui -name "procure_por_isso")
  for FILE in $FILES; do
    NAME="$FILE"
    NAME_REPLACED=$(echo $FILE | sed -e s/"procure_por_isso"/"substitua_por_isso"/g)
    mv $NAME $NAME_REPLACED
  done
.
Cabe lembrar que caso queira pesquisar pela parte do nome, no parametro -name pode-se utilizar o: *
por exemplo:
.
FILES=$(find /home/procure_por_aqui -name *procure_por_isso*)
.
Vai procurar por qualquer ocorrência de “procure_por_isso”. Segue um exemplo de alguns resultados possíveis:
.
abc_procure_por_isso
procure_por_isso_abc
procure_por_isso
.

, , , , , ,

  1. Deixe um comentário

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Sair / Alterar )

Imagem do Twitter

You are commenting using your Twitter account. Sair / Alterar )

Foto do Facebook

You are commenting using your Facebook account. Sair / Alterar )

Connecting to %s