LINUX.ORG.RU

sed, разбор примера из мануала

 


0

1

Изучая примеры из мануала стал замечать команды, которые считаю избыточными в этих примерах. Решил спросить про один из них. Print Duplicated Lines of Input Немного подправил код, убрал комменты и включил расширенный диалект:

#!/usr/bin/sed -rnf

$b
N
/^(.*)\n\1$/ {
    s/.*\n//
    p

    :b
    $b
    N
    /^(.*)\n\1$/ {
        s/.*\n//
        bb
    }
}

$b

D

Я считаю, если убрать все $b, то ничего не изменится. Проверил на нескольких примерах, работает. Я прав или что-то упустил всё-таки?

Ты бы хоть написал, что этот $b делает, т.к. не все до такой степени упарываюся sed’ом.

Если я правильно понял, то это что-то связаное с обработкой последней строки. Так что проверь повнимательнее на нескольких примерах, как обрабатывается последняя строка.

bigbit ★★★★★
()
Последнее исправление: bigbit (всего исправлений: 1)

)) А без упарывания я что-то вообще не понимал как им пользоваться. $b в данном случае завершает цикл, также как и N и D, перед которыми он стоит, если отсутствует следующая строка.

Flashrunner
() автор топика