Это в основном украдено из здесь :
fortune | sed ':a;N;$!ba;s/\n[[:space:]]\{2\}--/ --/'
Из исходного ответа:
Пояснение:
- Создайте ярлык через
: a
.- Добавить текущую и следующую строку в пространство шаблонов через
N
.- Если мы находимся перед последней строкой, перейдите к созданной метке
$! Ba
($!
означает не делать этого в последней строке, так как должен быть один последний символ новой строки ).
Последний шаг - единственный, который я изменил. Поскольку шаблон представляет собой две сцепленные строки, ищите -
, которым предшествуют два или более пробелов и новая строка (AFAIK этот шаблон отображается только в кавычках). Замените новую строку одним пробелом и добавьте обратно в -
, который был удален.
До:
There is always one thing to remember: writers are always selling somebody out.
-- Joan Didion, "Slouching Towards Bethlehem"
После:
There is always one thing to remember: writers are always selling somebody out. -- Joan Didion, "Slouching Towards Bethlehem"