我有一个复杂的问题。下面是我要编辑的 ndxconfig.ini
文件
# /etc/ndxconfig.ini will override this file
# if APP_ID is added in service propery, service discovery will be using marathon;
# HOST/PORT specified will override values retrieved from marathon
[MARATHON]
HOSTS = {{ ','.join(groups['marathon'])}}
PORT = 8080
PROTOCOL = http
SECRET = SGpQIcjK2P7RYnrdimhhhGg7i8MdmUqwvA2JlzbyujFS4mR8M88svI7RfNWt5rnKy4WHnAihEZmmIUb940bnlYmnu47HdUHE
[MYSQL]
; APP_ID = /neon/infra/mysql
HOST = {{keepalived_mysql_virtual_ip}}
PORT = 3306
SECRET = tIUFN1rjjDBdEXUsOJjPEtdieg8KhwTzierD48JsgDeYc84DD6Uy5a6kzHfKolq1MNS1DKwlSqxENk33UulJd9DPHPzYCxFm
我想将 特别是 marathon 协议(protocol) conf 从 http 更改为 https。不是其他人的协议(protocol) conf。我必须匹配 PROTOCOL = http
[MARATHON]
行下方的 3 行。我进行了研究,但找不到任何解决方案。 sed 解决方案下面只有 1 行。
我的一个想法不知何故特别 grep [MARATHON]
和下面的 3 行和尾部 1 行。我不知道。
如何解决这个问题?请帮忙。
最佳答案
找到解决方案 here
sed '/\[MARATHON\]/{N;N;N;s/http/https/;}' <file>
关于regex - 在 Bash 中编辑/匹配某个特定匹配项下方的字符串 n 行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58587929/