Другой способ с sed
:
sed -e 'tD' -e '$!N;/.\npattern/s/\n/&&/;:D' -e 'P;D' infile
Это подробно описано здесь : это в основном цикл N; P; D
, в котором мы учитываем новые строки, в которых редактируем, поэтому каждый раз, когда скрипт вставляет строку \ n
ewline, он выполняет только P
и D
без N
, чтобы всегда было только две строки в пространстве шаблонов.