Você pode combinar duas operações -exec
de find
, primeiro para localizar todos os arquivos que contenham uma string correspondente e, em segundo lugar, substituir a string pela palavra-chave replace (mantendo o backup do arquivo original), como
find . -type f -exec grep -il "searchstring" {} \; -exec sed -i.bak \
's/searchstring/replacestring/' {} \;
Explicação:
-
-exec grep -il "searchstring"
: pesquisa por "pesquisa" -
-exec sed -i.bak 's/searchstring/replacestring/'
: Se algum arquivo encontrado contiver string, mantenha o backup do arquivo e substitua por "replacestring".
Observe que, nesse caso, o segundo comando só será executado se o primeiro retornar com êxito.