Почему эти регулярные выражения в grep ведут себя странно?

Я хотел немного поиграть с командой grep с использованием регулярных выражений и узнать, что они ведут себя иначе, чем я ожидал. Например, для файла temp со следующим содержимым

helloworld 
hello_world
hello world
hello how are you world
hello wor   ld
hello_*_..world 
helloEworld

при запуске

grep 'hello.*world' temp

он возвращает

helloworld 
hello_world
hello world
hello how are you world
hello_*_..world 
helloEworld

, как ожидалось , Но когда я запускаю

grep 'hello.+world' temp

, он ничего не возвращает ... Хотя, когда add \ перед +

grep 'hello.\+world' temp

, он возвращает правильный ответ

[ f6]

при добавлении \ до * в предыдущей команде и при запуске

grep 'hello.\*world' temp

ничего не возвращает ...

Почему эта команда grep 'hello.+world' temp t, тогда как с \ он работает. И почему это совершенно противоположно для *? Когда следует использовать \?

1
задан 12 January 2015 в 19:19

0 ответов

Другие вопросы по тегам:

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