Если по какой-то причине вам не нужно использовать sed
, Perl почти всегда предпочтителен благодаря более чистому и гораздо более мощному синтаксису регулярных выражений:
find ... | xargs perl -i~ -pe 's/{{(.*?)}}/%{$1}/g'
Кроме того, несмотря на тот факт, что -i~
создает резервную копию, я настоятельно рекомендую вам сделать резервную копию всего дерева, прежде чем поиграть с этим.Я не могу сосчитать, сколько раз я стирал работу, дважды выполняя неработающую командную строку.Наиболее распространенной ошибкой является случайное использование -ne
вместо -pe
, что приводит к удалению всех данных с оригиналов.Повторное выполнение заменяет резервные копии новыми очищенными файлами, оставляя у вас только ощущение погружения в яму живота.