Обнаружено следующее в руководстве по sed для команды D:
D - Если в шаблонном пространстве нет новой строки, начните обычный новый цикл, как если бы была введена команда d.В противном случае удаляет текст в пространстве шаблона до первой новой строки и перезапускает цикл с результирующим пространством шаблона, не читая новую строку ввода
Но пример, который я пробую, не кажетсячтобы соответствовать тому, что описано выше.
$cat test
LINE 101
LINE 201
LINE 301
LINE 401
$ sed -nr '1{p;N;p;D;}' test
LINE 101
LINE 101
LINE 201
На основании описания sed, которое я понял, я понял следующее:
- распечатать пространство шаблона (LINE 101)
- Добавить строку 201 в пространство шаблона, распечатать пространство шаблона (LINE 101 \ n LINE 201)
- Удалить до первой новой строки в пространстве шаблона.Пространство шаблонов теперь будет иметь строку LINE 201
- . Теперь руководство sed говорит: «и перезапустите цикл с результирующим пространством шаблонов, не читая новую строку ввода». Что бы означало вернуться к началу команды?Если это так, то мы должны иметь вывод - LINE 201, LINE 201 \ n LINE 301 и так далее в цикле до конца.
Но это не вывод, который я вижу,