Jak w wszystkich plikach *.txt z danego katalogu i podkatalogów zamienić jakiś ciąg znaków na inny?

Aby dokonać masowej edycji plików najprościej posłużyć się edytorem sed opakowanym w skrypcik podający mu listę plików do edycji:

grep -r --include='*.txt' 'Napis ZAMIENIANY' * | tr ':' ' ' | while read f ;
   do echo $f; sed 's#Napis ZAMIENIANY#ZAMIENNIK#g' $f>/tmp/zamiennik;
   mv -f /tmp/zamiennik $f;
done

Modyfikacja tego skryptu (bez pętli while) może posłużyć do wyszukania plików spełniających zadane kryterium nazwy i treści w pliku.