środa,
Filtrowanie tekstu w plikach wsadowych
Filtrowanie tekstu w plikach wsadowych (batch files) w systemie Windows można realizować na kilka różnych sposobów, w zależności od potrzeb. Możliwości są ograniczone, jednak dostępne są przydatne narzędzia do przetwarzania tekstu, takie jak find
, findstr
oraz możliwość użycia pętli i instrukcji warunkowych.
Użycie polecenia FIND
Polecenie find
służy do wyszukiwania ciągów znaków w plikach. Możesz go użyć, aby wyfiltrować konkretne linie zawierające określony tekst.
find "szukany_tekst" plik.txt
Ten kod wyszuka i wyświetli wszystkie linie z plik.txt
, które zawierają szukany_tekst
.
Użycie polecenia FINDSTR
Polecenie findstr
jest bardziej zaawansowaną wersją polecenia find
, które obsługuje wyrażenia regularne i pozwala na wyszukiwanie wielu ciągów jednocześnie.
findstr "szukany_tekst1 szukany_tekst2" plik.txt
To polecenie wyszuka linie zawierające szukany_tekst1
lub szukany_tekst2
w plik.txt
.
Filtrowanie z użyciem pętli FOR
Do przetwarzania każdej linii pliku i filtrowania tekstu można użyć pętli for
z użyciem instrukcji warunkowych:
for /f "tokens=*" %%a in (plik.txt) do (
echo %%a | findstr "szukany_tekst" >nul
if not errorlevel 1 echo %%a
)
Ta pętla przeczyta plik.txt
linia po linii i wyświetli tylko te linie, które zawierają szukany_tekst
.
Sortowanie wyników
Możesz także posortować wyniki przy użyciu polecenia sort
:
find "szukany_tekst" plik.txt | sort
To połączenie poleceń najpierw filtruje linie, a następnie sortuje wyniki.
Przykłady zaawansowanego filtrowania
Jeśli chcesz zastosować bardziej skomplikowane filtrowanie, możesz połączyć różne polecenia i użyć bardziej złożonych wyrażeń regularnych z findstr
:
findstr /r /c:"^szukany_tekst[0-9]*$" plik.txt
To polecenie wyświetli wszystkie linie z plik.txt
, które zaczynają się od szukany_tekst
i kończą na cyfrach.