Регулярное выражение и команда sed: echo 1234567890 | sed 's / ((? <= \ D) \ d {3}) * \ b / TEST /' - PullRequest
0 голосов
/ 14 февраля 2012
Источник

равен 1234567890, регулярное выражение ((?<=\d)\d{3})*\b может соответствовать: 234567890, поэтому я думаю, sed должно заменить 234567890 на TEST, но результат: 1234567890, почему?

Ответы [ 2 ]

1 голос
/ 14 февраля 2012

просмотр не поддерживается sed. Вы можете попробовать ssed (super sed), он поддерживает режим Perl, (-R), тогда вы можете передать ему регулярное выражение в стиле Perl. например смотреть вперед / назад.

см. Список функций:

https://launchpad.net/ssed

0 голосов
/ 14 февраля 2012

Вы должны переписать регулярное выражение без вида сзади:

s/(\d)(?:\d{3})*\b/\1TEST
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...