Я знаю, что могу сделать это с помощью SED. Но в моей конкретной задаче это довольно сложно. Поэтому я не мог понять, несмотря на множество примеров на этом сайте.Найти и заменить строку в сценарии bash с помощью SED
У меня есть файл конфигурации с учетными данными.
<username><![CDATA[prefix_cms]]></username>
<password><![CDATA[complexpwd]]></password>
<dbname><![CDATA[prefix_cms]]></dbname>
Я хочу изменить все учетные данные на новое уникальное значение. Это проблема, когда я использую find для замены SED, потому что он изменяет имя пользователя и имя db на его новое значение.
Новые значения должны быть, например:
newusername
newpassword
newdbname
Как мне это сделать? Я искал первое появление в SED, но не смог заставить его работать по какой-то причине.
Я также попытался найти и заменить всю строку, включая пробы XML и CDATA, но это делает ее более сложной из-за персонажей.
Как я могу это решить?
EDIT:
Выход я ищу.
<username><![CDATA[newusername]]></username>
<password><![CDATA[newpassword]]></password>
<dbname><![CDATA[newdbname]]></dbname>
Ищете первый ответ, я вижу, что я не очень четко представлял, что я хотел.
EDIT2:
Я нашел идеальное решение здесь: Sed regex change of file
Почему -1? Обратная связь? – Akif
Можете ли вы опубликовать весь ожидаемый результат для ясности? нет совпадения, чтобы предлагать какие-либо проблемы, поэтому добавьте свою попытку, чтобы вы могли узнать, где вы поступили неправильно, и я тоже не уменьшил ... – Sundeep
Я не голосовал, но интересно, где ожидаемый результат или усилия, которые вы вложили в него? –