Использование команды sed с символом-разделителем - PullRequest
0 голосов
/ 10 октября 2019

У меня есть текстовый файл, как показано ниже, содержащий несколько строк с = в середине каждой строки.

User name      =  user1
Date expire    =  Oct 20, 2019

Я хочу найти Date expire и заменить правую часть =, котораядата с чем-то еще через sed. Например, Oct 25, 2019.

Я знаю базовое использование sed 's/foo/bar/g', но оно используется для фиксированных строк. Я хочу изменить часть предложения, обнаружив специальный символ.

Как я могу это сделать?

1 Ответ

2 голосов
/ 10 октября 2019

Не могли бы вы попробовать следующее.

sed '/Date expire/s/\(.*= \).*/\1 your_new_text_here/'  Input_file

Использование sed механизма хранения соответствующих значений регулярных выражений во временном буфере. Перенос всего в 1-й буфер до = и последующее сохранение значения строки без сохранения в буфере. Окончательно подставляем всю строку с 1-м значением и новым значением

...