Sed: руководство: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 1149:
cc\ndd$
</source>
В данном примере цикл состоит из 3 команд. В первом цикле команда <code>N</code>, после того как была помещена очередная строка в ''pattern space'', добавляет к ней следующую за ней строку. Далее командой <code>l</code> мы выводим содержимое ''pattern space'', и вы можете видеть, что в буфере находится конкатенация первых двух строк, разделенная переносом строки. Далее команда <code>D</code>, начиная с начала буфера, удаляет из ''pattern space'' строку до первого переноса строки, т.е. на момент конца цикла у нас в ''pattern space'' останется только <code>bb</code>. Затем команда <code>D</code> прерывает цикл, и Sed переходит на новую строку, но без помещения следующей строки в ''pattern space''. Снова команда <code>N</code> добавляет к имеющемуся содержимому следующую строку (<code>bb\ncc$</code>) и последовательность действий повторяется.
 
Вы можете создать метку в любой части цикла. Для этого используется следующий синтаксис: <code>:имя_метки</code>. Имя метки должно состоять по меньшей мере из одного символа. Метки не являются командами, поэтому они пропускаются при нормальном течении цикла.