Я пытаюсь использовать sed, чтобы получить символы между открывающим и закрывающим.Эти открывающие и закрывающие символы могут быть фигурными скобками, например {и} и т. Д. В моем конкретном случае открывающий символ - =
, а закрывающий символ - это конец строки.
В PHP у меня былрегулярное выражение, которое обычно работает для меня: ([^\^]*?)
.Однако, учитывая, что sed использует аромат POSIX-BRE, я не верю, что это сработает.
Строка, в которой я использую регулярное выражение, может выглядеть примерно так: password=mailPASSWORD
.mailPASSWORD может содержать как обычные буквы алфавита, так и специальные символы.
Поэтому я хочу заменить mailPASSWORD и ввести свой собственный пароль.
sed -i -r "s/password[ ]*=[ ]*([pattern_goes_here])/password=mypassword/" /myfile
Буду признателен за помощь.
Заранее спасибо
РЕДАКТИРОВАТЬ
Изучив другие альтернативы sed, я обнаружил, что Perl на самом деле гораздо лучший инструмент для такого рода вещей.И поскольку мои знания о регулярных выражениях в значительной степени основаны на Perl, это выглядит как лучший путь.
Вот как я бы решил ту же проблему:
perl -p -i -e "s/password *= *[^\n]*/password=mypassword/" /myfile
Поскольку яделать вещи построчно, это просто делает сценарии намного проще.