Przejdź do głównej zawartości

fgrep


  • fgrep – alias lub samodzielna wersja narzędzia grep, która wyszukuje dokładne ciągi znaków (literały), ignorując składnię wyrażeń regularnych.
  • Używane, gdy zależy nam na wydajności i bezpieczeństwie dopasowania dosłownego – np. wyszukiwanie wzorców zawierających znaki specjalne.
  • Dostępne w systemach GNU/Linux, BSD, macOS, a także jako część pakietu grep (GNU coreutils).

Okno terminala
fgrep [opcje] WZORZEC [plik...]
  • WZORZEC – literał, który ma zostać znaleziony (może zawierać znaki specjalne jak . lub *, które nie będą interpretowane).
  • Może działać na jednym lub wielu plikach tekstowych, jak również na wejściu standardowym.

ParametrOpis
-iIgnoruj wielkość liter przy dopasowaniu
-vOdwróć wynik – pokaż linie, które NIE zawierają wzorca
-cZlicz liczbę dopasowań zamiast ich wyświetlania
-nWyświetl numer linii przy każdym dopasowaniu
-lWyświetl tylko nazwę pliku, jeśli zawiera dopasowanie
-xDopasuj tylko całe linie
-f <plik>Wczytaj wiele wzorców z podanego pliku
--helpWyświetl pomoc
--versionWyświetl wersję narzędzia

Okno terminala
# 1. Znajdź linie zawierające dokładne słowo 'rm -rf' bez interpretacji
fgrep 'rm -rf' skrypt.sh
# 2. Zignoruj wielkość liter przy szukaniu frazy
fgrep -i 'Error' logi.txt
# 3. Zlicz wystąpienia konkretnej frazy w wielu plikach
fgrep -c 'TODO' *.c
# 4. Szukaj wielu fraz zapisanych w pliku wzorców
fgrep -f wzorce.txt dokumentacja.txt
  • Pierwszy przykład przydaje się do analizy poleceń w skryptach.
  • Drugi pozwala wyszukiwać niezależnie od kapitalizacji – przydatne w logach.
  • Trzeci prezentuje analizę statystyczną, np. liczby znaczników TODO w kodzie.
  • Czwarty upraszcza pracę z większym zbiorem słów kluczowych.

  • fgrep to techniczny alias dla grep -F, dlatego jest szybki i nie interpretuje regexów.
  • W nowoczesnych systemach jego użycie jest zniechęcane na rzecz jawnego grep -F, co ułatwia czytelność i unifikację skryptów.
  • W Bashu i Zsh można utworzyć alias: alias fgrep='grep -F'.
  • Nie nadaje się do wyszukiwania wzorców opartych na wyrażeniach regularnych – wtedy użyj grep lub egrep (grep -E).

Błąd / KomunikatPrzyczynaRozwiązanie
fgrep: file not foundPodany plik nie istniejeSprawdź ścieżkę lub użyj pełnej ścieżki
Binary file matchesDopasowanie znalezione w pliku binarnymUżyj opcji --binary-files=text lub przefiltruj pliki
Brak wynikówSzukany wzorzec zawiera znaki specjalneUpewnij się, że używasz dosłownego fgrep lub grep -F