Fri, Aug 26, 2005 at 11:41:53, andyo wrote about "[uanog] RE: [uanog] Re: Торможу с grep :(":
VN> Нет, Ваш вариант не будет работать в случае если они перекрываются. VN> Например, "ab&bc": "abc" ему будет соответствовать, а "ab.*bc|bc.*ab" - нет. Наоборот, наверное.
Да, в том смысле, что строка "abc" будет соответствовать "ab&bc", но не "ab.*bc|bc.*ab"
Не соображу слету почему, но -е вапче не ловит ничего на таком шаблоне. /home/andyo 10:17# grep -e ".*ab.*bc.*|.*bc.*ab.*" abc 123ab123bc123 abbc bcab Зато -Е делает все окромя оверлаппед "abc"
Вы путаете опции совершенно разного смысла. -E - это опция без параметра, включающая понимание шаблона как extended regexp (идентично вызову как egrep). А -e - это опция с параметром, явно принимающая шаблон не как первый позиционный, а как параметр этой опции (для использования в скриптах, когда шаблон заранее неизвестен, ну и вообще больше соответствует обычной логике задания параметров). Когда Вы задали шаблон как параметр для -e, работает понимание как basic regexp, вследствие этого символ альтернативы должен был писаться как "\|", а не просто "|". Да, с -E будет правильно пониматься как extended regexp и поэтому поймает всё кроме "abc". -netch- =================================================================== uanog mailing list. To Unsubscribe: send mail to majordomo@uanog.kiev.ua with "unsubscribe uanog" in the body of the message