Przejdź do treści

Centrum Kształcenia Zawodowego i Ustawicznego w Mrągowie

FINDSTR i wyrażenia regularne

środa,

FINDSTR i wyrażenia regularne

Polecenie findstr w systemie Windows obsługuje ograniczony zestaw wyrażeń regularnych, co oznacza, że jego możliwości nie są tak rozbudowane jak w przypadku narzędzi typu grep w systemach Unix/Linux czy nawet zaawansowanych funkcji dostępnych w językach programowania wspierających pełne wyrażenia regularne. Mimo to findstr może być użyteczne do wykonywania prostych zadań wyszukiwania i filtrowania tekstu.

Obsługiwane wyrażenia regularne

Znaki specjalne

  • ^: Oznacza początek linii. Użyj tego na początku wzorca, aby znaleźć tekst pasujący na początku linii.
  • $: Oznacza koniec linii. Użyj tego na końcu wzorca, aby znaleźć tekst pasujący na końcu linii.
  • .: Pasuje do dowolnego pojedynczego znaku, oprócz znaku nowej linii.

Sekwencje znaków

  • [xyz]: Pasuje do dowolnego pojedynczego znaku zawartego w nawiasach. Na przykład, [abc] pasuje do „a”, „b” lub „c”.
  • [^xyz]: Pasuje do dowolnego pojedynczego znaku niezawartego w nawiasach. Na przykład, [^abc] pasuje do dowolnego znaku, który nie jest „a”, „b” ani „c”.

Zaawansowane opcje

  • /I: Ignoruje wielkość liter przy porównywaniu tekstu.
  • /V: Wyświetla tylko te linie, które nie zawierają określonego wzorca.
  • /C: Umożliwia wyszukiwanie fraz zawierających spacje (traktuje ciąg znaków jako pojedynczy wzorzec do wyszukania).

Uwagi

  • findstr nie obsługuje wielu funkcji dostępnych w pełnych implementacjach wyrażeń regularnych, takich jak leniwe kwantyfikatory, grupy przechwytujące, wyrażenia zagnieżdżone, asercje, i inne zaawansowane funkcje.
  • Nie można używać | do oznaczenia alternatywy (OR) bezpośrednio w wyrażeniu, choć można osiągnąć podobny efekt, używając osobnych polecenia findstr lub opcji /c.
  • Wyrażenia regularne w findstr są ograniczone do prostych dopasowań i nie oferują pełnej elastyczności, którą można znaleźć w narzędziach specjalnie przeznaczonych do pracy z wyrażeniami regularnymi.

Przykłady

Wyszukiwanie linii, które zaczynają się od „start”

findstr "^start" plik.txt

Wyszukiwanie linii, które kończą się na „koniec”

findstr "koniec$" plik.txt

Wyszukiwanie linii zawierających dokładnie trzy cyfry z rzędu

findstr "[0-9][0-9][0-9]" plik.txt

Wyszukiwanie linii zawierających „error” lub „warning”

Możesz użyć kilku polecenia findstr z opcją /c dla każdego wzorca, aby wyszukać linie zawierające „error” lub „warning”:

findstr /R /c:"error" /c:"warning" plik.txt

W tym przypadku /c: pozwala określić literały, które mają być wyszukane. Użycie /R jest opcjonalne, ponieważ nie używamy tutaj żadnych specjalnych symboli wyrażeń regularnych.

Znalezienie linii niezawierających określonych słów

Aby znaleźć linie, które nie zawierają słowa „passed”, można użyć przełącznika /V:

findstr /V "passed" plik.txt

Przełącznik /V odwraca wyszukiwanie, więc polecenie zwraca wszystkie linie, które nie pasują do wzorca.

Wyszukiwanie linii zaczynających się dowolną literą

Aby znaleźć linie, które zaczynają się od dowolnej litery, użyj następującego wyrażenia:

findstr /R "^[a-zA-Z]" plik.txt

Tutaj ^ oznacza początek linii, a [a-zA-Z] oznacza dowolną literę z zakresu A-Z (zarówno małe, jak i duże litery).

Szukanie linii zawierających cyfry

Aby znaleźć linie zawierające co najmniej jedną cyfrę, można użyć:

findstr /R "[0-9]" plik.txt

W tym przypadku [0-9] pasuje do dowolnej cyfry od 0 do 9.

Wyszukiwanie linii kończących się konkretnym wyrazem, np. „success”

Możesz użyć poniższego polecenia, aby znaleźć linie kończące się słowem „success”:

findstr /R "success$" plik.txt

Symbol $ oznacza koniec linii, więc wzorzec pasuje do linii kończących się na „success”.

Artykuł: Wirtualizacja: Overcommitment

Wirtualizacja: Overcommitment

Artykuł: Marc Andreessen

Marc Andreessen

Artykuł: Zakończenie staży

Zakończenie staży

Artykuł: Brendan Eich

Brendan Eich

Artykuł: Nvidia GeForce 200

Nvidia GeForce 200

Nasze technikum

Technik informatyk

Szkoły dla dorosłych

Nasza szkoła

Pełna oferta edukacyjna

Oferta szkoły