58 Poznaj I .iniix
Linux udostępnia swoim użytkownikom kilka różnych poleceń służących do przeszu kiwania plików tekstowych. Niektóre z nich wykorzystują wyrażenia regularne (omówione w rozdziale 2), inne, jak strings, mają mniejszy zakres możliwości.
Polecenie grep należy do rodziny, w skład której wchodzą również polecenia fgrep i egrep. Są one ze sohą powiązane, ale różnią się możliwościami (zwłaszcza w zakresie dopuszczalnych wzorców i masek). Przykładowo, aby odnaleźć wszystkie odwołania do polecenia tee w pliku info-dir w katalogu /ctc, można wpisać:
# grep -n tee /etc/info-fir
92:* tee: (sh-utils)tee invocation. Redirect to multiple files.
grep zwraca odnalezione wyrazy w postaci wierszy z przeszukiwanego pliku. Flaga -n wypisuje numer każdego ze znalezionych wierszy. Domyślnie grep rozpoznaje tylko zwykłe wyrażenia regularne; użycie wyrażenia rozszerzonego spowoduje wystąpienie błędu:
H grep '\(gp' /etc/info-dir
grep: Unmatched ( or \(
Wszystkie wersje grep korzystają ze standardowych strumieni wyjścia i wejścia. Wzorce do odnalezienia mogą być umieszczane również w pliku (sporządzonym tu za pomocą polecenia cat) - wówczas do odczytania ich przez grep służy flaga f :
# cat > szukaj.Łxt
gpm
[EOT]
H grep -f szukaj.txt /etc/info-dir
# gpm: (gpm). Text-mode mouse library.
zgrep: przeszukiwanie plików skompresowanych
Do przeszukiwania skompresowanych plików tekstowych za pomocą wyrażeń regularnych służy polecenie zgrep. Jest to skrypt, który najpierw rozkompresowuje pliki, a następnie uruchamia dla nich grep luh egrep.
grep ma ponad 20 różnych flag i może emulować polecenia fgrep lub egrep (po zastosowaniu flag -f lub -e). Więcej szczegółów dotyczących wszystkich wersji grep znajduje się w podręczniku, a także w katalogu /usr/info ( program info).