Разобрался:
sed -e '/foo/{s//bar/;p;D};s/$/baz/'
Пояснение:
;
и сгруппировать с помощью {
... }
. /foo/
выбирает все строки, содержащие паттерн foo
. s//bar/
совпадает сs/foo/bar/
-пустой шаблон означает повторение последнего поиска (в данном случаеfoo
). p
означает печать пространства шаблона (строки после подстановки ). D
означает очистить текущую строку и перейти к следующей. s/$/baz/
выполнит вторую часть задачи, т.е. добавит baz
к строкам, которые оставило пройти предыдущее правило. Бит в скобках — это клавиша, которую нужно нажать, поэтому вы можете вставить буфер 42, нажав C-b = M-r
.
В качестве альтернативы вы можете использовать командную строку:C-b : pasteb -b buffer42
.
Можно привязать клавишу, чтобы сделать командную строку, которая просто запрашивает имя буфера,что-то вроде:
bind B command-prompt -pbuffer 'pasteb -b "%%"'