Kiedy używać egrep zamiast grep?

8

Przygotowuję się teraz do oceny terminala Linuksa, próbowałem Google i odkryłem, że większość zasobów odnosi się do podstawowego „grep”, a nie do mocniejszego „egrep” - cóż, przynajmniej tak powiedział profesor w wykładzie.

Zawsze pracuję z małymi samplami, więc dostrajanie wydajności jest czymś zbyt odległym.

Więc w zasadzie chciałbym wiedzieć, czy są jakieś obszary, w których muszę przejść na egrep, aby zrobić to w lepszy sposób? Czy na razie można bezpiecznie pracować z podstawowym „grep”? czy będą potencjalne zagrożenia?

Przepraszam za moją ograniczoną wiedzę na temat poleceń powłoki Linuksa, strona podręcznika wygląda dla mnie jak labirynt i szczerze mówiąc, nie poświęciłem wiele czasu na zrozumienie wszystkich funkcji obu poleceń.

Michael Mao
źródło

Odpowiedzi:

10

egrep = grep -E

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

„Dopasuj za pomocą rozszerzonych wyrażeń regularnych. Traktuj każdy wzorzec określony jako ERE, jak opisano w specyfikacji XBD, Rozszerzone wyrażenia regularne. Jeśli jakikolwiek cały wzorzec ERE pasuje do linii wejściowej, wiersz zostanie dopasowany. ERE o wartości zerowej pasuje do każdej linii.”

Dzięki egrep możesz używać +, ?, | and ().

Ben
źródło
@omfgroflmao: czy to cała różnica? cóż, teraz czuję się swobodnie, skupiając się na samouczkach „grep” bez martwienia się o polecenie „egrep” :) Dziękuję za twoją wskazówkę!
1
Bez względu na to, egrepczy go nazwiesz, czy grep -Erozszerzone wyrażenia regularne, ogólnie skomplikowane wzorce są krótsze, a zatem łatwiejsze do odczytania poprzez usunięcie wielu ``. Nie chodzi o wydajność, ale w pewnym sensie jest lepszym sposobem.
Cascabel,
5

egrep jest przestarzałe. Zastosowanie grep -E. Zauważ, że grepznajdzie dla ciebie wzory ciągów. Jeśli chcesz coś zrobić z łańcuchami po ich znalezieniu, musisz potokować do narzędzia do przetwarzania łańcucha, takiego jak awk(lub powłoka). Narzędzie, na które powinieneś również przyjrzeć się, jest awk, ponieważ awkznajduje ciągi dla ciebie, podobnie jak grepi wykonuje przetwarzanie, jeśli potrzebujesz. Zawiera wszystkie funkcje grep / sed / etc w jednym poręcznym narzędziu.

użytkownik31894
źródło
@ ghostdog74: ahhh, więc nie zaleca się używania egrep ... Myślałem, że to zamiennik grep ... Dzięki za wskazówkę!
2
Dla przypomnienia, na wielu maszynach, w tym mój, egrep to link do grep. Oznacza to, że w rzeczywistości są to te same dokładne polecenia, ale zachowują się inaczej w zależności od tego, jak je wywołujesz.
MJB,