Jak używać polecenia FGREP do wyszukiwania ciągów w Linux

Jak używać polecenia FGREP do wyszukiwania ciągów w Linux

Krótko: W tym przyjaznym przewodniku omówimy kilka praktycznych przykładów polecenia FGREP. Pod koniec tego przewodnika użytkownicy będą mogli wydajnie wykonywać operacje wyszukiwania tekstu za pomocą interfejsu wiersza poleceń.

Wyszukiwanie tekstu jest jedną z najczęściej wykonywanych operacji. Jednak to proste zadanie szybko staje się czasochłonne, jeśli użytkownicy nie znają odpowiednich narzędzi. W Linux istnieją różne narzędzia do filtru tekstu, takie jak AWK, SED, cięcie, itp.

Jednak w Linux, FGREP jest najbardziej preferowanym narzędziem do prostego wyszukiwania tekstu. W tym przewodniku omówimy niektóre przykłady praktyki FGREP polecenie, które można użyć w codziennym życiu.

FGREP Dowództwo w Linux należy do rodziny polecenia GREP. Służy jednak do wyszukiwania stałego wzoru ciągu zamiast wyrażeń regularnych. Stąd nazwa polecenia to FGREP (Naprawiono grep).

Składnia FGREP Polecenie jest podobne do innych poleceń rodzinnych GREP:

Wzory $ fgrep [opcje] [pliki] 

Na początek utwórzmy zwykły plik tekstowy z następującą treścią, aby użyć przykładu:

Wejście $ CAT.tekst 
Zobacz zawartość pliku w Linux

Tutaj widzimy, że plik tekstowy jest gotowy z przykładową zawartością. Omówmy teraz kilka wspólnych przykładów FGREP polecenie w następnych kilku przykładach.

1. Jak FGREP jest inny niż polecenia GREP i EGREP?

Jak sama nazwa wskazuje, FGREP Polecenie służy do wyszukiwania stałych wzorów ciągów. Interpretuje wzór jako stały ciąg zamiast wyrażenia regularnego. Stąd wykonuje operację wyszukiwania w sposób oszczędny.

Aby zrozumieć różnicę, użyjmy kropki (.) Postać z poleceniem GREP.

To proste wyrażenie regularne odpowiada dowolnej pojedynczej postaci, z wyjątkiem końca linii:

$ grep ha. wejście.tekst 
Wyszukiwanie pojedynczego znaku z GREP

Na powyższym wyjściu widzimy, że kropka (.) Postać dopasowała tekst Har, kapelusz, I ma.

Teraz użyjmy tego samego wzoru z FGREP dowodzić i obserwuj wynik:

$ fgrep ha. wejście.tekst 

W powyższym wyjściu możemy zobaczyć, że polecenie nie znajduje danego wzoru.

Dzieje się tak, ponieważ FGREP Polecenie nie rozpoznaje wyrażeń regularnych i próbuje szukać nieistniejącego wzoru - „Ha.".

[Możesz także polubił: jaka jest różnica między GREP, EGREP i FGREP w Linux? ]

2. Jak szukać wzoru w pliku

Zacznijmy od podstawowego przykładu, w którym będziemy szukać profesjonalistów w wejście.tekst plik:

$ FGREP Professionals.tekst 
Wyszukaj wzór w pliku

Jak widzimy, dopasowanie wzoru ulega sukcesy w dwóch miejscach i jest podświetlone w czerwonym kolorze.

3. Jak ustawić kolor wyjściowy GREP dla dopasowanych wzorów

W poprzednim przykładzie widzieliśmy, że domyślnie dopasowany wzór jest podświetlony w kolorze czerwonym. Możemy jednak zmienić to zachowanie, przypisując inną wartość do Grep_color Zmienne środowiska.

Przypiszmy wartość 32 do Grep_color Zmienna środowiska, aby podkreślić dopasowany wzór w kolorze zielonym:

$ Export grep_color = 32 $ FGREP Professionals.tekst 
Ustaw kolor wyjściowy GREP do pasujących wzorów

Teraz, zanim przejdzie do następnego przykładu, rozejmij Grep_color Zmienna środowiskowa, aby włączyć domyślne zachowanie:

$ unset grep_color 

4. Jak szukać wielu wzorów w pliku

Czasami musimy wykonywać dopasowanie wzorów dla wielu ciągów. W takich przypadkach możemy dostarczyć wzorce z pliku tekstowego zamiast argumentu wiersza poleceń.

Utwórzmy plik tekstowy, który zawiera wiele wzorów w osobnym wierszu:

Wzór $ cat.tekst Strona internetowa profesjonalistów 

Teraz użyjmy tego pliku z -F Opcja do dopasowywania wielu wzorów:

Wzór $ fgrep -f.Wejście TXT.tekst 
Wyszukaj wiele wzorów z FGREP

W powyższym wyjściu widać, że dopasowanie wzoru ulega sukcesy dla ciągów Specjaliści I strona internetowa.

5. Jak ograniczyć liczbę dopasowań w pliku

Domyślnie, FGREP Polecenie nadal wykonuje dopasowanie wzorców do momentu przetworzenia całego pliku.

Czasami jednak musimy ograniczyć liczbę dopasowań. W takich przypadkach możemy użyć -M Opcja z poleceniem:

$ fgrep -m 1 Wprowadzanie profesjonalistów.TXT TECMINT został uruchomiony 15 sierpnia 2012 r Specjaliści I wszystkie 

W tym przykładzie FGREP Polecenie zatrzymuje przetwarzanie pliku po dopasowaniu pierwszego wzoru.

6. Jak wydrukować nazwę pliku podczas wyszukiwania wzoru

Czasami musimy tylko znaleźć nazwę plików, w których obecny jest określony wzór. W takich przypadkach możemy użyć -L opcja FGREP Komenda:

$ FGREP -L Wprowadzanie profesjonalistów.tekst wejście.tekst 

Tutaj widzimy, że polecenie po prostu drukuje nazwę pliku zamiast linii z dopasowanymi wzorami.

7. Jak wydrukować nazwę pliku, gdy dopasowanie wzorca się nie powiedzie

W poprzednim przykładzie widzieliśmy, jak wydrukować nazwę pliku, gdy dopasowanie wzorca się powiodnie. Teraz zobaczmy, jak wykonać operację w odwrotny sposób.

Spróbujmy znaleźć nieistniejący wzór w pliku i obserwujmy wynik:

$ fgrep -l nieistniejące słowo.tekst wejście.tekst 

W tym przykładzie użyliśmy -L opcja polecenia, która drukuje nazwę pliku, gdy dopasowanie wzorca się nie powiodło.

8. Jak tłumić komunikaty o błędach

Obsługa błędów odgrywa kluczową rolę podczas pisania scenariuszy Shell. Jednak w niektórych niekrytycznych scenariuszach możemy bezpiecznie zignorować komunikaty o błędach.

W FGREP, Możemy użyć -S Opcja, która tłumi błędy związane z nieistniejącymi lub nieczytelnymi plikami. Aby zrozumieć to zachowanie w lepszy sposób, spróbujmy poszukać wzoru w nieistniejącym pliku:

$ FGREP -s Professionals nieistotny.txt $ echo $? 2 

W powyższym wyjściu możemy zobaczyć, że polecenie nie wyświetla żadnego błędu w standardowym strumieniu błędów. Jednak awaria jest zgłaszana przez niezerową wartość zwrotu.

Oprócz tego możemy również obserwować to samo zachowanie, gdy plik jest nieczytelny. Najpierw zmodyfikuj zgodę pliku za pomocą chmod Komenda:

$ chmod 000 wejściowe.TXT $ LS -L Wejście.tekst 

Teraz spróbuj szukać wzoru i obserwuj wynik:

$ FGREP -s Wprowadzanie profesjonalistów.txt $ echo $? 
Grep ignoruj ​​komunikaty o błędach

9. Jak wykluczyć częściowo dopasowane linie

W poprzednich przykładach widzieliśmy, że FGREP Polecenie wykonuje częściowe dopasowanie. Jednak w niektórych przypadkach musimy wykonać dokładne dopasowanie dla całej linii. W takich przypadkach możemy użyć -X opcja FGREP Komenda.

$ fgrep -nx „Ta sama strona jest czasem trudna do znalezienia." wejście.tekst 
Znajdź dokładny dopasowanie w pliku

W powyższym wyjściu dokładne dopasowanie linii odbywa się w wierszu nr 20.

10. Jak wykluczyć pliki podczas wyszukiwania rekurencyjnego

Czasami musimy pominąć niektóre pliki podczas wykonywania operacji wyszukiwania. W takich przypadkach możemy użyć --wykluczać opcja FGREP Komenda.

Aby to zrozumieć, najpierw utwórz katalog i skopiuj kilka przykładowych plików:

$ mkdir dir-1 $ cp.TXT DIR-1/Wejście.Wejście txt $ cp.TXT DIR-1/Wejście.Dane $ CP Wejście.TXT DIR-1/Wejście.MD 

Teraz szukajmy wzorca we wszystkich plikach Dir-1 katalog z wyjątkiem ".tekst" akta:

$ fgrep -r --exclude *.TXT Professionals Dir-1 
Wyklucz pliki podczas wyszukiwania wzorca

W powyższym wyjściu widzimy, że dopasowanie wzoru zostało wykonane w plikach z ".MD ” I ".dane" rozszerzenia.

11. Jak wykluczyć wiele typów plików podczas wyszukiwania rekurencyjnego

W poprzednim przykładzie widzieliśmy, jak wykluczyć pliki o szczególnych rozszerzeniach. Polecenie staje się jednak długie, gdy chcemy wykluczyć pliki z wieloma rozszerzeniami. W takich przypadkach możemy dostarczyć wzorzec wykluczający z pliku zamiast argumentu wiersza poleceń:

Utwórzmy więc plik tekstowy, który zawiera wiele wykluczających wzorców w osobnej linii:

$ CAT SKIP-PATTERN.tekst *.tekst *.dane 

Teraz użyjmy tego pliku z --Wykluczyć z opcja:

$ fgrep -r-exclude-from skip-w-fattern.TXT Professionals Dir-1 
Wyklucz wiele typów plików podczas wyszukiwania

Tutaj widzimy, że dopasowanie wzoru zostało wykonane w plikach z ".MD ” Tylko rozszerzenia.

12. Jak dołączyć pliki podczas wyszukiwania rekurencyjnego

W poprzednich przykładach widzieliśmy, jak wykluczyć pliki podczas rekurencyjnego wykonywania operacji wyszukiwania. Teraz zobaczmy, jak wykonać operację w odwrotny sposób.

Użyjmy --włączać opcja FGREP polecenie do wyszukiwania plików za pomocą „*.tekst" rozszerzenie:

$ fgrep -r -Include "*.TXT „Professionals Dir-1 
Dołącz pliki podczas wyszukiwania wzoru

W powyższym wyjściu możemy zobaczyć, że dopasowanie wzoru jest pomijane do plików z „*.MD ” I „*.dane" rozszerzenia.

W tym artykule omówiliśmy kilka przydatnych przykładów FGREP Komenda. Początkujący mogą korzystać z tych przykładów w codziennym życiu, aby poprawić wydajność podczas pracy z Linux.

Czy znasz jakikolwiek inny najlepszy przykład polecenia FGREP w Linux? Daj nam znać swoje poglądy w komentarzach poniżej.