Bash, сопоставить строку, а затем заменить все после символа в следующей строке

Вам нужно:

IdentityFile ~/.ssh/id_bastion
AddKeysToAgent yes
ForwardAgent yes

Проверитьman ssh_config | less +/AddKeysToAgent

-1
27.04.2021, 01:51
2 ответа

sedкажется хорошим кандидатом на это:

sed -i '/^[[:space:]]*duper_service:/ { N; s/[^:]*$/ 4.0.2/ }' file.txt

Объяснение :Когда встречается строка "duper _service :", добавляется следующая строка, и все, что заканчивается этой строкой, после двоеточия([^:]*$)заменяется на "4.0.2".

Опция -iизменяет файл на месте -. Это расширение GNU sed.

0
28.04.2021, 22:51

Похоже, это работает:

sed -i '/duper_service/!b;n;c\ \ \ \ app_version: 4.0.2' file.txt
0
28.04.2021, 22:51

Теги

Похожие вопросы