Archive for category Bash Script
Bash Script find and replace
Publicado por Rodrigo Ramalho da Silva em Bash Script em 03/01/2012
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
.