Jan. 23rd, 2017

jamhed: (Default)
При упаковывании систем в docker-файлы часто возникает задача редактировать текстовые файлы с параметрами. Для неструктурированного текста есть всем известный редактор sed, наследник могучего ed. Для структурированных файлов есть более лучшие варианты, поддерживающие структуру: xmlstarlet и jq. Оба с написаны на C и с минимумом зависимостей и входят в популярные дистрибутивы (alpine, debian). Как это выглядит:

Редактирование XML-конфига:
xmlstarlet edit --inplace -u '/configuration/settings/param[@name="rtp-start-port]/@value' -v 10000 conf/autoload_configs/switch.conf.xml

Редактирование JSON-конфига:
jq -M '.sdk.base_url="http://base.url"' config.json > config.json.new

Опция для jq редактировать файлы in-place бурно обсуждается.

И для полноты, sed:
sed -i s/old/new/g config.conf

September 2017

S M T W T F S
     1 2
3 4 56 78 9
10111213 14 1516
171819 20212223
24252627282930

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 21st, 2017 06:54 am
Powered by Dreamwidth Studios