20 przykładów poleceń Linux Egrep

20 przykładów poleceń Linux Egrep

Krótko: W tym przewodniku omówimy niektóre z praktycznych przykładów polecenia EGREP. Po przestrzeganiu tego przewodnika użytkownicy będą mogli wykonywać tekst bardziej wydajnie w Linux.

Czy kiedykolwiek byłeś sfrustrowany, ponieważ nie możesz znaleźć wymaganych informacji w dziennikach? Wyodrębnienie wymaganych informacji z dużego zestawu danych jest złożonym i czasochłonnym zadaniem.

Sprawy stają się naprawdę trudne, jeśli system operacyjny nie zapewnia odpowiednich narzędzi, a oto Linux, aby cię uratować. Linux zapewnia różne narzędzia do filtrowania tekstu, takie jak AWK, SED, cięcie, itp.

Jednak Egrep jest jednym z najsilniejszych i najczęściej używanych narzędzi do przetwarzania tekstu w Linux i omówimy kilka przykładów Egrep Komenda.

Egrep Polecenie w Linux jest rozpoznawane przez rodzinę polecenia GREP, która jest używana do wyszukiwania i dopasowywania określonego wzorca w plikach. Działa podobnie jak grep -e (GREP rozszerzona regex), ale głównie wyszukuje określony plik lub nawet linie do linii lub drukowania linii w danym pliku.

Składnia Egrep Polecenie jest następujące:

$ egrep [opcje] wzorce [pliki] 

Utwórzmy przykładowy plik tekstowy z następującą treścią, aby użyć przykładu:

próbka $ cat.tekst 
Przykładowy plik tekstowy

Tutaj widzimy, że plik tekstowy jest gotowy. Omówmy teraz kilka typowych przykładów, które można stosować na co dzień.

1. Jak znaleźć wzór w jednym pliku

Zacznijmy od prostego przykładu dopasowywania wzoru, w którym możemy użyć poniższego polecenia, aby wyszukać ciąg profesjonalny w próbka.tekst plik:

$ Egrep Professionals Próbka.tekst 
Wyszukaj ciąg w pliku

Tutaj widzimy, że polecenie drukuje wiersz zawierający określony wzór.

2. Jak wyróżnić dopasowane wzorce w pliku

Możemy uczynić wyjście bardziej pouczającym, podkreślając dopasowany wzór. Aby to osiągnąć, możemy użyć --kolor opcja Egrep Komenda. Na przykład poniższe polecenie podświetli tekst Specjaliści w kolorze czerwonym:

$ egrep -color = Auto Professionals Próbka.tekst 
Podświetl tekst w pliku

Tutaj widzimy, że ta sama produkcja jest bardziej pouczająca w porównaniu z poprzednim. Możemy również łatwo określić to słowo Specjaliści powtarza się dwa razy.

W większości systemów Linux powyższe ustawienie jest domyślnie włączone przy użyciu następującego aliasu:

$ alias egrep = "egrep -color = auto" 

3. Jak znaleźć wzór w wielu plikach

Egrep Polecenie akceptuje wiele plików jako argument, który pozwala nam wyszukiwać określony wzór w wielu plikach. Zrozummy to przykładem.

Najpierw utwórz kopię próbka.tekst plik:

Próbka $ CP.TXT próbki.tekst 

Teraz przeszukaj wzór Specjaliści W obu plikach:

$ Egrep Professionals Próbka.TXT próbki.tekst 
Wyszukaj ciąg w wielu plikach

W powyższym przykładzie możemy zobaczyć nazwę pliku na wyjściu, który reprezentuje dopasowaną linię z tego pliku.

4. Jak liczyć pasujące wiersze w pliku

Czasami musimy tylko dowiedzieć się, czy wzór jest obecny w pliku. Jeśli tak, to w ilu liniach jest obecnych? W takich przypadkach możemy użyć -C opcja polecenia.

Na przykład wyświetli poniższe polecenie 1 jako wyjście, ponieważ słowo Specjaliści jest obecny tylko w jednej linii.

$ egrep -c profesjonaliści próbka.tekst 1 

5. Jak drukować tylko dopasowane linie w pliku

W poprzednim przykładzie widzieliśmy, że -C Opcja nie liczy liczby wystąpień wzoru. Na przykład słowo Specjaliści pojawia się dwa razy w tej samej linii, ale -C Opcja traktuje to tylko jako pojedynczy mecz.

W takich przypadkach możemy użyć -o opcja polecenia do wydrukowania tylko dopasowanego wzoru. Na przykład poniższe polecenie wyświetli słowo Specjaliści Na dwóch oddzielnych liniach:

$ egrep -o Professionals Próbka.tekst 

Teraz policzmy wiersze za pomocą polecenia WC:

$ egrep -o Professionals Próbka.txt | WC -L 
Wydrukuj dopasowane linie w pliku

W powyższym przykładzie użyliśmy kombinacji Egrep I toaleta Polecenia do zliczenia liczby wystąpień konkretnego wzoru.

6. Jak znaleźć wzór, ignorując sprawę

Domyślnie, Egrep wykonuje dopasowanie wzorców w sposób wrażliwy. Oznacza to słowa - my, my, my, i jesteśmy traktowani jak różne słowa. Możemy jednak egzekwować wyszukiwanie wrażliwe na przypadek za pomocą -I opcja.

Na przykład w poniższym meczu wzorca poleceń odniesie sukces dla tekstu My I My:

$ egrep -i próbujemy.tekst 
SZTUKA WYSZUKIWANIA NIESAMOWITE

7. Jak wykluczyć częściowo dopasowane wzory

W poprzednim przykładzie widzieliśmy, że Egrep Polecenie wykonuje częściowe dopasowanie. Na przykład, gdy szukaliśmy tekstu My Następnie dopasowanie wzoru zakończyło się również innymi tekstami. Takie jak internet, strona internetowa i były.

Aby przezwyciężyć to ograniczenie, możemy -w opcja, która egzekwuje całe pasowanie całego słowa.

$ egrep -w.tekst 
Drukuj tylko dopasowane wzory w pliku

8. Jak odwrócić dopasowanie wzorców w pliku

Jak dotąd użyliśmy Egrep polecenie wydrukowania wierszy, w których obecny jest podany wzór. Czasami jednak chcemy wykonać operację w odwrotny sposób.

Na przykład możemy chcieć wydrukować linie, w których podany wzór nie jest obecny. Możemy to osiągnąć za pomocą -v opcja:

$ egrep -v.tekst 
Dopasowanie wzorców odwróconych w pliku

Tutaj widzimy, że polecenie drukuje całą linię, która nie zawiera tekstu My.

9. Jak znaleźć numer linii wzoru

Możemy użyć -N opcja polecenia, aby włączyć numerowanie linii, która pokazuje numer linii w wyjściu podczas dopasowania wzorca. Ta prosta sztuczka sprawia, że ​​wyjście jest bardziej znaczące.

$ Egrep -n Professionals Próbka.tekst 
Drukuj numer linii dopasowanego wzoru

W powyższym wyjściu widzimy, że słowo Specjaliści jest obecny w 5 linia.

10. Jak wykonywać dopasowanie wzorów w trybie cichym

W trybie spokojnym, Egrep polecenie nie drukuje dopasowanego wzoru. Musimy więc użyć wartości zwrotnej polecenia, aby określić, czy dopasowanie wzorców powiodło się.

Możemy użyć -Q Opcja polecenia, aby włączyć tryb cichy, który przydaje się podczas pisania skontleur.

$ Egrep -q Professionals Próbka.txt $ egrep -q nieistniejąca próbka.tekst 
Dopasowywanie wzoru wyszukiwania w trybie cichym

W tym przykładzie zero Wartość zwracana wskazuje obecność wzoru, podczas gdy wartość niezerowa wskazuje na brak wzoru.

11. Jak wyświetlać linie przed dopasowaniem wzoru

Czasami sensowne jest pokazanie kilku linii wokół dopasowanego wzoru. W przypadku takich scenariuszy możemy użyć -B opcja polecenia, które wyświetla N linie przed dopasowanym wzorem.

Na przykład poniższe polecenie wydrukuje wiersz, dla którego dopasowanie wzoru ulegnie sukcesie, a także 2 wiersze przed nim.

$ egrep -b 2 -n profesjonaliści próbka.tekst 
Wydrukuj linie przed dopasowaniem wzoru

W tym przykładzie użyliśmy -N Opcja wyświetlania numerów linii.

12. Jak wyświetlać linie po dopasowaniu wzoru

W podobny sposób możemy użyć -A opcja polecenia do wyświetlania linii po dopasowaniu wzoru. Na przykład poniższe polecenie wydrukuje wiersz, dla którego dopasowanie wzoru się powiedzie, a także następne 2 wiersze.

$ egrep -a 2 -n profesjonaliści próbka.tekst 
Wydrukuj linie po dopasowaniu wzoru

13. Jak wyświetlać linie wokół dopasowania wzoru

Oprócz tego, Egrep Polecenie obsługuje -C opcja, która łączy funkcjonalność opcji -A I -B, który wyświetla linie przed i po dopasowanym wzorze.

$ egrep -c 2 -n profesjonaliści próbka.tekst 
Wydrukuj linie wokół dopasowania wzoru

14. Jak znaleźć wzór w wielu plikach rekurencyjnie

Jak omówiono wcześniej, możemy wykonywać dopasowanie wzorców w wielu plikach. Sytuacja staje się jednak trudna, gdy pliki są obecne w wielu podwodniników i przekazujemy wszystkie argumenty poleceń.

W takich przypadkach możemy wykonywać dopasowanie wzorów w sposób rekurencyjny za pomocą -R opcja, jak pokazano w poniższym przykładzie.

Najpierw utwórz 2 podwodnione i skopiuj próbka.tekst Zgłaszaj się do nich:

$ mkdir -p Dir1/Dir2 $ CP Próbka.próbka TXT DIR1/ $ CP.TXT DIR1/DIR2/ 

Teraz wykonajmy operację wyszukiwania w sposób rekurencyjny:

$ egrep -r profesjonaliści Dir1 
Wyszukaj ciąg rekurencyjnie w plikach

W powyższym przykładzie widzimy, że mecz wzoru zakończył się dla Dir1/Dir2/próbka.tekst I Dir1/próbka.tekst akta.

15. Jak dopasować pojedynczy znak za pomocą wyrażeń regularnych

Możemy użyć kropki (.) znak pasujący do dowolnego pojedynczego znaku, z wyjątkiem końca linii. Na przykład poniższe wyrażenie regularne pasuje do tekstu Har, Hat i ma:

$ egrep "ha." próbka.tekst 
Dopasuj pojedynczy znak w pliku

16. Jak dopasować zero lub więcej wystąpień charakteru

Możemy użyć gwiazdki (*) Aby dopasować zero lub więcej wystąpień poprzedniej postaci. Na przykład poniżej wyrażenie regularne pasuje do tekstu zawierającego ciąg My a następnie zero lub więcej wystąpień postaci B.

$ egrep „Web*”.tekst 
Dopasuj ciąg w pliku tekstowym

17. Jak dopasować jedną lub więcej wystąpień poprzedniej postaci

Możemy użyć plus (+) Aby dopasować jedną lub więcej wystąpień poprzedniej postaci. Na przykład poniższe wyrażenie regularne pasuje do tekstu zawierającego ciąg My a następnie co najmniej jedno wystąpienie postaci B.

$ egrep „Web+”.tekst 
Dopasuj ciąg według znaku w pliku

Tutaj widzimy, że dopasowanie wzoru nie udaje się dla tych słów - My I był, Z powodu braku postaci B.

18. Jak dopasować początek linii

Możemy użyć Caret (^) reprezentować początek linii. Na przykład poniższe wyrażenie regularne drukuje linie, które zaczynają się od tekstu My:

$ egrep "^my" próbka.tekst 
Drukuj dopasowany tekst z linią startową

19. Jak dopasować koniec linii

Możemy użyć dolara ($) reprezentować koniec linii. Na przykład poniżej wyrażenie regularne drukuje linie kończące się tekstem mi.:

$ egrep "e.$ "próbka.tekst 
Drukuj dopasowany tekst z linią końcową

20. Jak usunąć puste linie w pliku

Możemy użyć Caret (^) bezpośrednio za sobą dolara ($) reprezentować pustą linię. Użyjmy tego w wyrażeniu regularnym, aby usunąć puste linie:

$ egrep -n -v "^$".tekst 
Usuń puste linie w pliku

Na powyższym wyjściu widzimy, że liczby linii 2, 4, 6, 8 i 10 nie są wyświetlane, ponieważ są puste.

Wniosek

W tym artykule omówiliśmy kilka przydatnych przykładów Egrep polecenia. Można użyć tych przykładów w codziennym życiu, aby poprawić wydajność.

Czy znasz jakikolwiek inny najlepszy przykład polecenia EGREP w Linux? Daj nam znać swoje poglądy w komentarzach poniżej.