Переупорядочить объявление пространства имен в каждом файле - PullRequest
0 голосов
/ 07 января 2019

Я ищу способ перестановки строки текста, которая соответствует шаблону, а также строчных букв всего.

Например, в моей кодовой базе у меня есть "app \ Services \ PropertyTax". Я хочу заменить это на «Acme \ modules \ propertytax \ services».

После приложения будет только два уровня, и порядок вновь отформатированной строки всегда будет меняться и падать.

app \ Entities \ HumanResources => Acme \ modules \ humanresources \ entity

и т.д.

Ищите способ сделать это в каждом файле в определенном каталоге.

Заранее спасибо.

1 Ответ

0 голосов
/ 07 января 2019

Попробуйте awk

find . -exec gawk -i inplace -v INPLACE_SUFFIX=.bak -F\\ '/app\\.*\\.*/ {print "Acme\\modules\\"tolower($3)"\\"tolower($2)}' {} \;


Это заменит файлы, а также сохранит резервную копию исходного файла с суффиксом имени файла .bak.

Если вы хотите удалить файлы резервных копий

find . -regex ".*bak" -type f -exec rm -f {} \;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...