обновить значения, определенные в секции спецификаций c файла конфигурации, используя bash - PullRequest
0 голосов
/ 29 января 2020

Я хочу обновить один файл конфигурации, используя bash.

Файл конфигурации имеет несколько разделов, например

[SECTION1]
action.email.useNSSubject = 1
dispatch.earliest_time = 1578927600
dispatch.latest_time = 1579016736
search = | inputlookup KPI_MASTER_LIST.csv | search TYPE="MTE_GENERIC" \
| table ALERT Order\
| map maxsearches=21 search="| savedsearch "$$ALERT$$" host_token=$host_token$ SERVICE_EARLIEST_TIME=$SERVICE_EARLIEST_TIME$ time_token.earliest=$time_token.earliest$ time_token.latest=$time_token.latest$ | appendcols [ | makeresults | eval Order="$$Order$$" | fillnull count ] | table ALERT count Order "\
| sort Order \


[SECTION2]
action.email.useNSSubject = 1
alert.track = 0
dispatch.earliest_time = 153437300
dispatch.latest_time = 1549013433
display.general.timeRangePicker.show = 0
search = | inputlookup KPI_MASTER_LIST.csv | search TYPE="MTE_GENERIC" \
| table ALERT Order\
| map maxsearches=21 search="| savedsearch "$$ALERT$$" host_token=$host_token$ SERVICE_EARLIEST_TIME=$SERVICE_EARLIEST_TIME$ time_token.earliest=$time_token.earliest$ time_token.latest=$time_token.latest$ | appendcols [ | makeresults | eval Order="$$Order$$" | fillnull count ] | table ALERT count Order "\
| sort Order \

Я хочу обновить значение "dispatch.earliest_time" и "dispatch.latest_time" только в указанном c разделе (не все вхождения этого файла)

1 Ответ

1 голос
/ 29 января 2020

Вы можете использовать диапазон адресов с указанием вашего разделителя

sed '/\[SECTION_NAME\]/,/^\[/ s/dispatch.earliest_time/new_value_here/'

Подробную документацию о sed вы можете найти здесь

...