Есть файл file.ext, с содержимым:
sada<sdfsdsd>asdas>Почему команда:
egrep -oE '<.*?>' file.ext
возвращает
<sdfsdsd>asdas>Как заставить её понимать нежадные регэкспы и возвращать
<sdfsdsd>
>Есть файл file.ext, с содержимым:
>sada<sdfsdsd>asdas>
>
>Почему команда:
>egrep -oE '<.*?>' file.ext[c0der@xxx ~]$ echo "sada<sdfsdsd>asdas>" | egrep -o '<[^>]+>'
<sdfsdsd>
>[c0der@xxx ~]$ echo "sada<sdfsdsd>asdas>" | egrep -o '<[^>]+>'
><sdfsdsd>Хорошо, это понятно. Но все-таки egrep поддерживает работу с нежадными выражениями или нет?
Почему, в моем случае, например preg_match_all в php отрабатывает с регэкспом <.*?> и возвращает <sdfsdsd>, а egrep не хочет?
Потому что egrep это вам не pcre в отличии от варианта в пыхе. Можно кстати ман было почитать на тему различий grep и egrep:In GNU grep, there is no difference in available functionality using either syntax. In other implementations, basic regular expressions are less powerful.
AFAIK grep не поддерживает минимальные квантификаторы. Это, вроде, перловая мулька (может ещё где есть, не знаю), а php, если я правильно понимаю, использует перловые же регекспы.