Zaawansowane użycie grep z wyrażeniami regularnymi
Zastosuje Pan/Pani złożone wzorce regex wraz z „grep”, aby wykonywać precyzyjne i wydajne wyszukiwanie tekstu w plikach.
Zaawansowane użycie grep z wyrażeniami regularnymi to bezpłatna lekcja Linux Command Line & Bash Scripting Mastery na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Linux Command Line & Bash Scripting Mastery, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Linux Command Line & Bash Scripting Mastery zawiera 4 lekcji w sumie.
Nadludzka moc wyrażeń regularnych w grep
Witamy w lekcji poświęconej zaawansowanemu użyciu grep z wyrażeniami regularnymi! W poprzedniej lekcji poznaliśmy same wyrażenia regularne (Regex). Teraz odkryjemy ich pełny potencjał w potężnym poleceniu grep.
grep to podstawowe narzędzie do wyszukiwania wzorców tekstowych w plikach. Łącząc je z zaawansowanymi wyrażeniami regularnymi, można precyzyjnie znaleźć to, czego się szuka, niezależnie od złożoności wzorca.
Włączanie rozszerzonych wyrażeń regularnych (-E)
Domyślnie grep używa podstawowych wyrażeń regularnych (BRE). Aby korzystać z bardziej zaawansowanych funkcji, takich jak +, ?, | i (), należy włączyć rozszerzone wyrażenia regularne (ERE).
Można to zrobić za pomocą opcji -E albo polecenia egrep, które jest zasadniczo tym samym co grep -E. Utwórzmy przykładowy plik do pracy:
echo "apple
banana
appanana
orange
app" > fruits.txtKwantyfikatory: jeden lub więcej (+)
Kwantyfikator + dopasowuje jedno lub więcej wystąpień poprzedzającego go znaku lub grupy. Jest bardzo przydatny, gdy oczekuje się, że wzorzec powtórzy się co najmniej raz.
Na przykład aby znaleźć wiersze, w których po „p” występuje co najmniej jedno „a”, użyjemy pa+.
grep -E 'pa+' fruits.txtKwantyfikatory: zero lub więcej (*)
Kwantyfikator * dopasowuje zero lub więcej wystąpień poprzedzającego go znaku lub grupy. Jest przydatny, gdy znak może wystąpić, ale nie jest wymagany.
Znajdźmy wiersze, w których po „b” występuje zero lub więcej znaków „a”:
grep -E 'ba*' fruits.txtKwantyfikatory: zero lub jeden (?)
Kwantyfikator ? dopasowuje zero lub jedno wystąpienie poprzedzającego go znaku lub grupy. Można myśleć o nim jak o oznaczeniu znaku jako opcjonalnego.
Chcesz znaleźć zarówno „color”, jak i „colour”? Możesz oznaczyć „u” jako opcjonalne:
echo "color
colour
coor" > words.txt
grep -E 'colou?r' words.txtOkreślone liczby za pomocą {} (nawiasów klamrowych)
Aby uzyskać jeszcze większą kontrolę, można określić dokładne liczby lub zakresy za pomocą nawiasów klamrowych {}:
a{3}: dokładnie trzy znaki „a”.a{2,}: co najmniej dwa znaki „a”.a{1,3}: od jednego do trzech znaków „a”.
Znajdźmy wiersze, w których „a” powtarza się dokładnie dwa razy:
grep -E 'a{2}' fruits.txtKotwice: początek i koniec (^, $)
Kotwice nie dopasowują znaków, lecz pozycje. Kotwica ^ dopasowuje początek wiersza, a $ jego koniec.
Ma to kluczowe znaczenie, gdy wzorzec ma dopasować cały wiersz albo zaczynać się lub kończyć dokładnie w określonym miejscu.
^apple: wiersze zaczynające się od „apple”.banana$: wiersze kończące się na „banana”.^apple$: wiersze zawierające wyłącznie „apple”.
grep -E '^app' fruits.txtAlternatywa za pomocą OR (|)
Symbol | (pionowa kreska) działa jak operator OR. Umożliwia dopasowanie jednego wzorca LUB drugiego. Jest to niezwykle przydatne podczas wyszukiwania wielu różnych słów lub fraz jednocześnie.
Na przykład aby znaleźć wiersze zawierające „apple” lub „orange”:
grep -E 'apple|orange' fruits.txtGrupowanie wzorców za pomocą ()
Nawiasy () służą do grupowania części wyrażenia regularnego. Dzięki temu można zastosować kwantyfikator lub alternatywę do całej grupy, a nie tylko do pojedynczego znaku.
Na przykład aby znaleźć „ana” występujące co najmniej raz po „b”:
grep -E 'b(ana)+' fruits.txtSzybki test: zaawansowane użycie grep
Plik data.txt zawiera:
cat
cats
catt
catterpillar
dog
Jakie polecenie poprawnie znajdzie wiersze zawierające „cat”, po którym występuje zero lub więcej znaków „t”?
Podsumowanie: możliwości wyrażeń regularnych w grep
Opanował(a) Pan(i) zaawansowane techniki użycia grep z rozszerzonymi wyrażeniami regularnymi! Omówiliśmy:
- używanie
-Edo obsługi rozszerzonych funkcji wyrażeń regularnych; - kwantyfikatory:
+(jeden lub więcej),*(zero lub więcej),?(zero lub jeden) oraz{}do określania konkretnych liczb; - kotwice:
^(początek wiersza) i$(koniec wiersza); - alternatywę
|dla warunków typu „OR”; - grupowanie wzorców za pomocą
().
Narzędzia te umożliwiają niezwykle precyzyjne i elastyczne wyszukiwanie tekstu, czyniąc z Pana/Pani prawdziwego mistrza wiersza poleceń!
Często zadawane pytania
Czy lekcja „Zaawansowane użycie grep z wyrażeniami regularnymi” jest bezpłatna?
Tak — pełny tekst „Zaawansowane użycie grep z wyrażeniami regularnymi” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Linux Command Line & Bash Scripting Mastery, przejdź na CoddyKit PRO. Kurs Linux Command Line & Bash Scripting Mastery zawiera 4 lekcji w sumie.
Co nauczysz się w „Zaawansowane użycie grep z wyrażeniami regularnymi”?
Zastosuje Pan/Pani złożone wzorce regex wraz z „grep”, aby wykonywać precyzyjne i wydajne wyszukiwanie tekstu w plikach. Ćwiczysz Linux Command Line & Bash Scripting Mastery z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Linux Command Line & Bash Scripting Mastery?
Nie wymagamy żadnego doświadczenia. Linux Command Line & Bash Scripting Mastery w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Zaawansowane użycie grep z wyrażeniami regularnymi”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Linux Command Line & Bash Scripting Mastery?
Tak. Każda lekcja Linux Command Line & Bash Scripting Mastery zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Wprowadzenie do wyrażeń regularnych (regex)
- Zaawansowane użycie grep z wyrażeniami regularnymi
- Łączenie wyrażeń regularnych z sed/awk
- Grupy przechwytujące, odwołania wsteczne i podstawianie