Це не дає жодного результату. Як це?
$ echo 'this 1 2 3' | grep '\d\+'
Але це:
$ echo 'this 1 2 3' | grep '\s\+'
this 1 2 3
$ echo 'this 1 2 3' | grep '\w\+'
this 1 2 3
2
Ніхто з цих не працює для мене (Solaris).
—
спред
Я теж ні. (Cygwin) Ти мав на увазі мати
—
Ерік Вілсон
\+
? Що це означає?
так, я на Ubuntu 10.04, використовую bash. Для BRE в грепі вам потрібно уникнути деяких символів. Спробуйте "Основні проти розширених регулярних виразів" у чоловічому грепі.
—
Ankur Agarwal
@FarmBoy:
—
Daenyth
+
в регулярному виразі означає "один або кілька попередніх токенів". У цьому випадку він уникає, тому що це синтаксис, необхідний grep
двигуну регулярних виразів за замовчуванням.
@FarmBoy:
—
Кіт Томпсон
+
потрібно уникнути, якщо ви використовуєте grep
; якщо ви використовуєте egrep
, це не робить. grep -E
еквівалентний egrep
(принаймні, для версії GNU).