Как получить доступ к справочной странице, замаскированной другой справочной страницей?

Использованиеsed:

$ sed -n '/This is the start/{h;d;}; H; /This is the ending/{x;p;}' file
[This is the start] of some other data
this is info I want
this is info I want
[This is the ending I was looking for]

Аннотированный sedскрипт:

/This is the start/{    # We have found a start
    h;                  # Overwrite the hold space with it
    d;                  # Delete from pattern space, start next cycle
};

H;                      # Append all other lines to the hold space

/This is the ending/{   # We have found an ending
    x;                  # Swap pattern space with hold space
    p;                  # Print pattern space
};

Что делает сценарий, так это сохраняет все строки в «удерживаемое пространство» (буфер общего назначения в sed), но как только мы находим «стартовую строку», мы сбрасываем это пространство. При обнаружении «конечной строки» сохраненные данные распечатываются.

Это прерывается, если "конечная линия" находится перед "стартовой линией" и, возможно, также, если найдены две "конечные линии" без "стартовой линии" между ними -.


Программа awk, которая выполняет ту же процедуру, что и описанная выше программа sed:

$ awk '/This is the start/  { hold = $0; next }
                            { hold = hold ORS $0 }
       /This is the ending/ { print hold }' file

(такой же выход, как и выше)

2
04.08.2020, 21:51
2 ответа

Я нашел временное решение с флагом -aи пропустил страницу OpenSSL

1
18.03.2021, 23:15

Вы были близки -не используйте никакие флаги, простоman <section> command:

$ man 1 passwd
...
$ man 1ssl passwd
...

(Я подтвердил это в Ubuntu 20.04, где по умолчанию используется раздел 1, если ничего не указано.)

5
18.03.2021, 23:15

Теги

Похожие вопросы