Когда следует использовать egrep вместо grep?

8

Сейчас я готовлюсь к оценке терминала Linux, я попытался найти в Google и обнаружил, что большинство ресурсов ссылаются на основной «grep», а не на более мощный «egrep» - ну, по крайней мере, так сказал профессор в лекции.

Я всегда работаю с небольшими сэмплами, поэтому настройка производительности - это слишком далеко.

В общем, я хотел бы знать, есть ли области, где я должен перейти на egrep, чтобы сделать это лучше? Безопасно ли сейчас работать с базовым «grep»? будут ли потенциальные риски?

Извините за мои ограниченные знания о командах оболочки Linux, страница руководства выглядит для меня лабиринтом, и, честно говоря, я не потратил много времени на понимание всех функций, которые предоставляют обе команды.

Michael Mao
источник

Ответы:

10

egrep = grep -E

От http://www.opengroup.org/onlinepubs/007908799/xcu/grep.html

"Матч с использованием расширенного регулярного   выражения. Лечить каждую картину   указывается как ERE, как описано в   спецификация XBD, расширенная   Регулярные выражения . Если какой-либо весь   Шаблон ERE соответствует строке ввода,   линия будет соответствовать. Нулевой ERE   соответствует каждой строке. "

Итак, с egrep вы можете использовать +, ?, | and (),

Ben
источник
@omfgroflmao: это все разница? ну, теперь я чувствую себя комфортно, просто сосредоточившись на уроках "grep", не беспокоясь о команде "egrep" :) Спасибо за ваш совет!
1
Называете ли вы это egrep или же grep -Eрасширенные регулярные выражения обычно делают сложные шаблоны короче и, следовательно, их легче читать, удаляя много ``. Дело не в производительности, но в некотором смысле это лучший способ.
Cascabel
5

egrep устарела. использование grep -E, Обратите внимание, что grep находит строковые шаблоны для вас. Если вы хотите что-то сделать с вашими строками после их поиска, вам нужно передать инструмент для обработки строк, awk (или оболочка). Инструмент, который вы также должны изучить это awk, как awk находит строки для вас так же, как grep и делает обработку для вас, если вам нужно. В нем есть все, что делает grep / sed / etc в одном удобном инструменте.

user31894
источник
@ ghostdog74: аааа, поэтому egrep рекомендуется не использовать ... Я думал, что это замена для grep ... Спасибо за совет!
2
Просто для записи, на многих машинах, включая мою, egrep - это ссылка на grep. То есть на самом деле они представляют собой одну и ту же команду, но ведут себя по-разному в зависимости от того, как вы их называете.
MJB