Use isto:
find main_dir -type f -name '*.txt' -exec perl -pi -w -e 's/hello/hiThere/g;' {} \;
Substitua main_dir
pelo seu diretório principal
Estou usando um MacOS X. Eu sei que este código no terminal substituirá todos os arquivos txt que incluem "hello" por "hiThere" na pasta chamada "world":
perl -pi -w -e 's/hello/hiThere/g;' ~/Desktop/world/*.txt
Mas dentro dessa pasta do mundo há outras pastas que possuem outros arquivos txt, e elas não passam pelo refator ou pela renomeação, você tem que digitar individualmente as pastas adicionais usando o método acima.
Existe um método que faz isso automaticamente para você?
Use isto:
find main_dir -type f -name '*.txt' -exec perl -pi -w -e 's/hello/hiThere/g;' {} \;
Substitua main_dir
pelo seu diretório principal