Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Наследование параметров в новом файле из старого  (Прочитано 625 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн CrownRU

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Доброго времени суток.
Хочу попросить о помощи. Может у кого-то уже есть готовое решение.
Обновили Content Manager, а у него старые конфиги не подходят к новой версии.
Дело осложняется тем, что существует туева хуча директорий и в каждой лежит свой конфиг.
Пришлось сделать один файл руками и распространить по всем директориям.
Старые файлы я переименвал в <файл>.backup. Вот из него бы хотелось бы перенять параметры.

1. Перенять номера портов из oldfile в newfile
ARCHWIN_PORT    13050
WEBPORT         33050

2. В некоторых файлах есть места, где надо перенести из старого файла дополнительные блоки(в файле-доноре только один блок). Вот пример. Количество блоков может быть разным :( :
(Нажмите, чтобы показать/скрыть)

Файл-донор:
(Нажмите, чтобы показать/скрыть)

Спасибо всем заранее!

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
1.
Код: (bash) [Выделить]
find -type f -name "*.backup" -exec bash -c 'grep "ARCHWIN_PORT\|WEBPORT" {} >> $(dirname {})/$(basename {} .backup)' \;2. Как-то более понятно можете объяснить как отбираются "блоки" и что такое "донор" и кто такой "реципиент"?
В Linux можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн CrownRU

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
2. Как-то более понятно можете объяснить как отбираются "блоки" и что такое "донор" и кто такой "реципиент"?
[/quote]

Спасибо, Azure!
Извини, что невнятно выразился.
Есть старый файл file.backup  и новый файл file. В новый файл нужно перенести блоки из старого.
В новых файлах нужно заменить строки:

(Нажмите, чтобы показать/скрыть)

на такие же строки из старого. Вот этих ARCHIVE может быть несколько.
ARCHIVE - всегда начало блока + 6 строк после - до PROTECTION          off
Возможно лучше сперва стреть в новом файле блок
(Нажмите, чтобы показать/скрыть)
и добавить блоки (ARCHIVE + 5 строк вниз ) из file.backup ?

Пользователь решил продолжить мысль 23 Марта 2015, 15:32:59:
1.
Код: (bash) [Выделить]
find -type f -name "*.backup" -exec bash -c 'grep "ARCHWIN_PORT\|WEBPORT" {} >> $(dirname {})/$(basename {} .backup)' \;
Я так понимаю, что этот скрипт ищит ARCHWIN_PORT и WEBPORT и добавляет (не заменяет) в file без "backup"? Тогда надо предварительно стереть в файле старые значения?
Извини, я в скриптах - чайник медный.
« Последнее редактирование: 23 Марта 2015, 15:32:59 от CrownRU »

 

Страница сгенерирована за 0.018 секунд. Запросов: 22.