Найти и заменить для стандартизации пробелов - PullRequest
0 голосов
/ 14 сентября 2011

У меня около 50 шаблонов, и я хотел бы стандартизировать пробелы по переменным следующим образом -

Inputs: {{variable}}, {{ something  }}, {{  test  }}, etc.
Output: {{ variable }}, {{ something }}, {{ test }} # one space within inner bracket

Как мне найти и заменить все файлы в myproject/templates? Спасибо.

1 Ответ

4 голосов
/ 14 сентября 2011

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*\), другой пробел и две закрывающие скобки.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...