find /myproject/templates -type f | xargs sed -i 's/{{\s*\(\S*\)\s*}}/{{ \1 }}/g'
Перевод:
find /myprojects/templates -type f
найдет все элементы в /myproject/templates
, которые являются обычными файлами (в отличие от символических ссылок или каталогов).
xargs sed -i s/FIND/REPLACE/g'
выполнит sed
для редактирования каждого файла на месте (то есть он заменит содержимое файла на отредактированную версию). Он будет искать шаблон FIND
и заменять его на REPLACE
глобально (то есть везде, где он появляется в строке).
Компоненты шаблона FIND
:
{{\s*
= две открытые скобки, за которыми следуют ноль или более пробельных символов
\(\S*\)
= любые отличные от пробельные символы. (Это означает, что имена ваших переменных не могут содержать внутренние пробелы.) Избегающие парены сохранят эти символы (которые являются именами ваших переменных) для использования в шаблоне REPLACE
.
\s*}}
= ноль или более пробельных символов, за которыми следуют две закрывающие скобки.
Компонентами шаблона REPLACE
являются две открытые скобки, один пробел, имя переменной, которое мы сохранили с помощью \(\S*\)
, другой пробел и две закрывающие скобки.
Надеюсь, это поможет!