Команда sed для обработки входного потока и преобразования каждого вхождения слова - PullRequest
0 голосов
/ 30 декабря 2018

Мне нужна помощь с моим кодом.мне нужно написать команду sed для обработки входного потока и преобразования каждого вхождения слова «страница», за которым следует число, в гиперссылку HTML формы, где NNN - номер страницы.

Например:

See page 107

следует заменить на:

See <a href="#p107">page 107</a>

код должен соответствовать POSIX:

sed -r 's/________/_______/g'

1 Ответ

0 голосов
/ 30 декабря 2018

Вы можете использовать это регулярное выражение, которое использует нотацию POSIX,

(page[[:space:]]+([[:digit:]]+))

И заменить его на это,

<a href="#p\2">\1</a>

Попробуйте с помощью этой команды примера,

echo "See page 107" | sed -r 's~(page[[:space:]]+([[:digit:]]+))~<a href="#p\2">\1</a>~g'

Или используйте -E вместо -r (для OS X)

echo "See page 107" | sed -E 's~(page[[:space:]]+([[:digit:]]+))~<a href="#p\2">\1</a>~g'

, что дает этот вывод,

See <a href="#p107">page 107</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...