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

July 2017

S M T W T F S
      1
23 45678
9101112 13 1415
1617 1819 20 2122
23242526272829
3031     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 23rd, 2017 02:46 am
Powered by Dreamwidth Studios