Friday 3 November 2017

Grep no binary option


grep - Unix, Linux Recurse Polecenia w katalogach pomiń dopasowanie pliku PATTERN. Wyłącz komunikaty o nieistniejących lub nieczytelnych plikach. Notatka o przenoś niach: w odróżnieniu od GNU grep. tradycyjny grep nie zgadzał się z POSIX.2, ponieważ tradycyjny grep nie miał opcji - q, a jego opcja zachowywała się podobnie jak GNU grep rsquos - q. Skrypty powłoki przeznaczone do przenoszenia na tradycyjny grep powinny unikać zarówno - q i - s, jak i powinny przekierować wyjście, aby zamiast tego działało. Traktuj plik jako binarny. Domyślnie w systemach MS-DOS i MS-Windows grep domyśla typ pliku, przeglądając zawartość pierwszego 32KB czytanego z pliku. Jeśli grep decyduje, że plik jest plikiem tekstowym, usuwa znaki CR z oryginalnej zawartości pliku (aby regularnie wyrażać i działać poprawnie). Określenie - U przesądza, że ​​wszystkie te pliki są odczytywane i przekazywane do pasującego mechanizmu, jeśli plik jest plikiem tekstowym z parami CRLF na końcu każdego wiersza, co spowoduje, że niektóre wyrażenia regularne ulegną uszkodzeniu. Ta opcja nie ma wpływu na platformy inne niż MS-DOS i MS-Windows. Raportuj przesunięcia bajtów w stylu uniksowym. Ten przełącznik powoduje, że grep raportuje przesunięcia bajtów tak, jakby plik był plikiem tekstowym w stylu uniksowym, tzn. Z odciętymi znakami CR. Spowoduje to uzyskanie wyników identycznych z uruchomieniem grep na maszynie Unix. Ta opcja nie działa, chyba że opcja - b również nie ma wpływu na platformy inne niż MS-DOS i MS-Windows. Wydrukuj numer wersji grep na standardowy błąd. Ten numer wersji powinien być uwzględniony we wszystkich raportach o błędach (patrz poniżej). Odwróć sens dopasowywania, aby wybrać nie dopasowane linie. Zaznacz tylko te wiersze zawierające dopasowania, które tworzą całe słowa. Test polega na tym, że pasujące podłoże musi znajdować się na początku wiersza lub poprzedzone niepospolitym wyrazem. Podobnie, musi to być na końcu wiersza lub po nim składnik niebędący wyrazem. Znaki składające się na słowa to litery, cyfry i podkreślenie. Wybierz tylko te dopasowania dokładnie dopasowane do całej linii. Przestarzały synonim dla - i. Wypisuje bajt zerowy (znak ASCII NUL) zamiast znaku, który normalnie podąża za nazwą pliku. Na przykład grep - lZ wyprowadza zerowy bajt po każdej nazwie pliku zamiast zwykłej nowej linii. Ta opcja powoduje, że dane wyjściowe są jednoznaczne, nawet w przypadku nazw plików zawierających nietypowe znaki, takie jak nowe linie. Ta opcja może być użyta w poleceniach find - print0. perl -0. sort - z. i xargs -0 do przetwarzania dowolnych nazw plików, nawet tych, które zawierają znaki nowej linii. Aby wyszukać podany ciąg w jednym pliku test. sh cat test. sh binbash fun () echo To jest test. Zakończ nasz skrypt powłoki z komunikatem o powodzeniu 1 z powyższego pliku. Grep exit: grep exit demofile Do sprawdzania podanego ciągu w wielu plikach: w tym przypadku test. sh i test1.sh cat test. sh binbash fun () echo To jest test. Zakończ nasz skrypt powłoki z komunikatem o sukcesie wyjścia 1 cat test1.sh binbash fun () echo Jest to test1. Zakończ nasz skrypt powłoki z wyjściem z powodzeniem exit 0 grep exit w obu plikach test. sh i test1.sh: test1.sh: exit 0 test. sh: exit 1 Do wyszukiwania bez uwzględniania wielkości liter przy użyciu grep - i, dodano EXIT w kodzie test1.sh test1.sh binbash fun () echo To jest test1. Zakończ nasz skrypt powłoki z komunikatem o sukcesie, EXIT z 0 exit 0 grep exit test1.sh test1.sh: exit 0 grep - i exit test test1.sh: Zakończ nasz skrypt powłoki z komunikatem o sukcesie, EXIT z 0 test1.sh: exit 0 dwie linie z opcją - i, jako przypadki niewrażliwej. jpg, egrep, fgrep - drukuj linie pasujące do wzoru OPIS Grep wyszukuje nazwane wejście FILE s (lub standardowe dane wejściowe, jeśli nie ma nazw plików, lub podano nazwę pliku) dla wiersze zawierające dopasowanie do podanego wzoru. Domyślnie grep drukuje dopasowane linie. Ponadto dostępne są dwa wersje programów egrep i fgrep. Egrep jest taki sam jak grep - E. Fgrep jest taki sam jak grep - F. - A NUM - po-kontekście NUM Drukuj NUM wierszy końcowego kontekstu po dopasowaniu linii. - a. --text Przetwarzanie pliku binarnego, tak jakby był to tekst, jest to odpowiednik opcji --binary-filestext. - B NUM. - przed kontekstem NUM Drukuj NUM wierszy wiodącego kontekstu przed dopasowaniem linii. - C NUM, - NUM. --context NUM Drukuj NUM wierszy (domyślnie 2) kontekstu wyjściowego. - b . --byte-offset Wydrukuj przesunięcie bajtów w pliku wejściowym przed każdym wierszem wyjścia. --biblioteki TYPE Jeśli pierwsze kilka bajtów pliku wskaże, że plik zawiera dane binarne, załóż, że plik ma typ TYPE. Domyślnie TYPE jest binarny. a grep normalnie wysyła pojedynczy komunikat informujący, że plik binarny pasuje lub żaden komunikat, jeśli nie ma dopasowania. Jeśli TYPE jest niezgodny. grep przyjmuje, że plik binarny nie zgadza się z tym jest równoważny opcji - I. Jeśli TYPE to tekst. grep przetwarza plik binarny, tak jakby był to tekst, jest to odpowiednik opcji - a. Ostrzeżenie: grep --binary-filestext może wyprowadzać binarne śmieci, które mogą mieć paskudne skutki uboczne, jeśli wyjście jest terminalem i jeśli sterownik terminala interpretuje niektóre z nich jako polecenia. - c. --count Wyłącz standardowe wyjście, zamiast wydrukować liczbę pasujących linii dla każdego pliku wejściowego. Z - v. - opcja dopasowywania wtórnego (zobacz poniżej), liczenie niezgodnych linii. - D DZIAŁANIE. - katalogi ACTION Jeśli plik wejściowy znajduje się w katalogu, użyj ACTION, aby go przetworzyć. Domyślnie ACTION jest czytany. co oznacza, że ​​katalogi są odczytywane tak, jakby były zwykłymi plikami. Jeśli pominiesz działanie. katalogi są w milczeniu pomijane. Jeśli ACTION się powtórzy. grep czyta wszystkie pliki w każdym katalogu, rekurencyjnie jest to odpowiednik opcji - r. - E. --extended-regexp Interpretuj Wzór jako rozszerzoną ekspresję regularną (patrz poniżej). - e WZÓR. --regexp PATTERN Użyj Wzoru jako wzoru przydatnego do ochrony wzorców zaczynających się od -. - F. --fixed-strings Interpret PATTERN jako listę stałych łańcuchów, oddzielonych znakami nowej linii, które mają być dopasowane. - f FILE. --file FILE Pobieranie wzorców z pliku FILE. jeden na linie. Pusty plik zawiera zero wzorów, a zatem nic nie pasuje. - G. --basic-regexp Interpretuj Wzór jako podstawowy wyrażenie regularne (patrz poniżej). Jest to ustawienie domyślne. - H. --with-filename Drukuj nazwę pliku dla każdego meczu. - h. --no-filename Wyłącza przedrostek nazw plików na wyjściu, gdy przeszukuje się wiele plików. --help Wyjdź krótką informację o pomocy. - I Przetwarzam plik binarny tak, jakby nie zawierał pasujących danych, co odpowiada opcji --binary-fileswithout-match. - ja . --ignore-case Ignoruj ​​rozróżnienia pomiędzy zarówno PATTERN, jak i pliki wejściowe. - L. --files-without-match Zresetuj zwykłe wyjście, zamiast wydrukować nazwę każdego pliku wejściowego, z którego nie wydrukowano żadnego wyjścia. Skanowanie zostanie zatrzymane w pierwszym meczu. - l. --files-with-matches Wyłącza typowe wyjście zamiast wydrukować nazwę każdego pliku wejściowego, z którego wydruk został wydrukowany normalnie. Skanowanie zostanie zatrzymane w pierwszym meczu. --mmap Jeśli to możliwe, użyj wywołania systemowego mmap (2), aby odczytać dane wejściowe, zamiast domyślnego połączenia systemowego odczytu (2). W niektórych sytuacjach --mmap zapewnia lepszą wydajność. Jednak --mmap może powodować niezdefiniowane zachowanie (w tym zrzutów rdzenia), jeśli plik wejściowy zmniejszy się, gdy działa grep lub jeśli wystąpi błąd IO. - n. - linia-numer Przedrostek każdej linii wyjścia z numerem linii w pliku wejściowym. - q. --cichy . - cichy Spokój powstrzymuje normalne wyjście. Skanowanie zostanie zatrzymane w pierwszym meczu. Zobacz także opcję - s lub --no-messages poniżej. - r. --recursive Odczytywanie wszystkich plików w każdym katalogu, rekurencyjnie jest to odpowiednik opcji - d recurse. - s. --no-messages Usuwa komunikaty o nieistniejących lub nieczytelnych plikach. Notatka o przenoś niach: w odróżnieniu od GNU grep. tradycyjny grep nie pasował do POSIX.2. ponieważ tradycyjny grep nie miał opcji - q, a jego opcja zachowała się jak GNU grep s - q. Skrypty powłoki przeznaczone do przenoszenia na tradycyjny grep powinny unikać zarówno - q i - s, jak i powinny przekierować wyjście, aby zamiast tego działało. - U. --binary Traktuj plik jako binarny. Domyślnie w systemach MS-DOS i MS-Windows grep domyśla typ pliku, przeglądając zawartość pierwszego 32KB czytanego z pliku. Jeśli grep decyduje, że plik jest plikiem tekstowym, usuwa znaki CR z oryginalnej zawartości pliku (aby regularnie wyrażać i działać poprawnie). Określenie - U przesądza, że ​​wszystkie te pliki są odczytywane i przekazywane do pasującego mechanizmu, jeśli plik jest plikiem tekstowym z parami CRLF na końcu każdego wiersza, co spowoduje, że niektóre wyrażenia regularne ulegną uszkodzeniu. Ta opcja nie ma wpływu na platformy inne niż MS-DOS i MS-Windows. - u. --unix-bajty-przesunięcia Raportuj uniksowe przesunięcia bajtów. Ten przełącznik powoduje, że grep raportuje przesunięcia bajtów tak, jakby plik był plikiem tekstowym w stylu uniksowym, tzn. Z odciętymi znakami CR. Spowoduje to uzyskanie wyników identycznych z uruchomieniem grep na maszynie Unix. Ta opcja nie działa, chyba że opcja - b również nie ma wpływu na platformy inne niż MS-DOS i MS-Windows. - V. --version Wyświetla numer wersji grepu do błędu standardowego. Ten numer wersji powinien być uwzględniony we wszystkich raportach o błędach (patrz poniżej). - v. --invert-match Odwróć sens dopasowania, aby wybrać linie nie pasujące. - w - słowo-regexp Zaznacz tylko te wiersze zawierające pasujące do niego całe słowa. Test polega na tym, że pasujące podłoże musi znajdować się na początku wiersza lub poprzedzone niepospolitym wyrazem. Podobnie, musi to być na końcu wiersza lub po nim składnik niebędący wyrazem. Znaki składające się na słowa to litery, cyfry i podkreślenie. - x. - line-regexp Wybierz tylko te dopasowania, które dokładnie pasują do całej linii. - y Przestarzały synonim dla - i. - Z. --null Wypisuje bajt zerowy (znak ASCII NUL) zamiast znaku, który normalnie podąża za nazwą pliku. Na przykład grep - lZ wyprowadza zerowy bajt po każdej nazwie pliku zamiast zwykłej nowej linii. Ta opcja powoduje, że dane wyjściowe są jednoznaczne, nawet w przypadku nazw plików zawierających nietypowe znaki, takie jak nowe linie. Ta opcja może być użyta w poleceniach find - print0. perl -0. sort - z. i xargs -0 do przetwarzania dowolnych nazw plików, nawet tych, które zawierają znaki nowej linii. REGULARNE WYRAŻENIA Wyrażenie regularne to wzór, który opisuje zestaw ciągów. Wyrażenia regularne są konstruowane analogicznie do wyrażeń arytmetycznych, używając różnych operatorów do łączenia mniejszych wyrażeń. Grep rozumie dwie różne wersje składni wyrażenia regularnego: podstawowe i rozszerzone. W GNU grep. nie ma różnicy w dostępnej funkcjonalności przy użyciu dowolnej składni. W innych implementacjach podstawowe wyrażenia regularne są mniej wydajne. Poniższy opis stosuje się do rozszerzonych różnic wyrażeń regularnych w odniesieniu do podstawowych wyrażeń regularnych. Podstawowymi elementami konstrukcyjnymi są wyraŜenia regularne, które pasują do pojedynczego znaku. Większość znaków, w tym wszystkie litery i cyfry, są wyrażeniami regularnymi, które pasują do siebie. Każdy metacharacter o szczególnym znaczeniu można cytować poprzedzając go ukośnikiem odwrotnym. Lista znaków umieszczonych w pasku i pasujących do dowolnego pojedynczego znaku z tej listy, jeśli pierwszy znak na liście jest znakiem karetki, to pasuje do dowolnego znaku nie znajdującego się na liście. Na przykład wyrażenie regularne 0123456789 pasuje do dowolnej pojedynczej cyfry. Można określić liczbę znaków, podając pierwsze i ostatnie znaki, oddzielając się łącznikiem. Wreszcie, niektóre określone klasy znaków są predefiniowane. Ich nazwy są objaśniające i są: alnum:. : alfa:. : cntrl:. :cyfra: . : wykres:. : dolna:. : drukuj:. : punct:. :przestrzeń: . : górna:. i: xdigit :. Na przykład: alnum: oznacza 0-9A-Za-z. z wyjątkiem ostatniego formularza zależy od ustawień regionalnych POSIX i kodowania znaków ASCII, podczas gdy poprzednie elementy są niezależne od zestawu ustawień narodowych i znaków. (Należy pamiętać, że wsporniki tych nazw klas są częścią nazw symbolicznych i muszą być uwzględnione w dodatku do nawiasów ograniczających listę wsporników). Większość metaznaków traci szczególne znaczenie wewnątrz list. Aby umieścić dosłowne miejsce na liście. Podobnie, aby umieścić dosłowne miejsce, gdziekolwiek, ale przede wszystkim. Wreszcie, aby umieścić w nim literalne miejsce. Okres . pasuje do dowolnego pojedynczego znaku. Symbol w jest synonimem: alnum: a W jest synonimem: alnum. Znak karetki i dolara to metaznaky, które odpowiednio dopasowują pusty łańcuch na początku i na końcu linii. Symbole lt i gt odpowiadają ciągowi pustemu na początku i końcu słowa. Symbol b pasuje do pustego ciągu na krawędzi słowa, a B odpowiada pustemu łańcuchowi, pod warunkiem, że nie znajduje się na krawędzi słowa. Po wyrażeniu regularnym może występować jeden z kilku operatorów powtórzeń: poprzedni element jest opcjonalny i dopasowany najwyżej raz. Poprzednia pozycja zostanie dopasowana zero lub więcej razy. Poprzednia pozycja zostanie dopasowana co najmniej raz. n Poprzednia pozycja jest dopasowywana dokładnie n razy. n, Poprzednia pozycja jest dopasowywana n lub więcej razy. n, m Poprzednia pozycja jest dopasowana co najmniej n razy, ale nie więcej niż m razy. Dwa wyrażenia regularne mogĘ ... zostać konkatenowane, wynikowa wyrażona wyrażenie odpowiada dowolnemu ciĘ ... gowi utworzonemu przez konkatenowanie dwóch podłóg, które odpowiednio dopasowujĘ ... się do konkatenowanych podwyżek. Dwa wyrażenia regularne mogĘ ... być połĘ ... czone przez operatora napę dowego wynikowa wyrażona wyrażka pasuje do dowolnego napisu pasujĘ ... cego do każdej podwyrażki Powtarzanie ma pierwszeństwo przed konkatenacją, co z kolei ma pierwszeństwo przed przemianą. Cała podpunkt może zostać zamknięta w nawiasie, aby nadpisać te reguły pierwszeństwa. Wsteczność n. gdzie n jest pojedynczą cyfrą, pasuje do podłańcuchu poprzednio dopasowanego przez n-tą nawiasowaną podwyrażoną wyrażenie regularne. W podstawowych wyrażeniach regularnych metaznaky. . . . (i) tracą szczególne znaczenie, zamiast używać wersji odwróconej. . . . ( . i ) . Tradycyjne egrep nie obsługuje metacharacter, a niektóre implementacje egrep obsługują zamiast tego, więc przenośne skrypty powinny unikać w przykładach egrep i powinny być użyte do dopasowania literału. GNU egrep próbuje wspierać tradycyjne użycie, zakładając, że nie jest to specjalne, gdyby był to początek nieprawidłowej specyfikacji interwału. Na przykład komendę powłoki egrep wyszukuje łańcuch dwukrotnie zamiast zgłaszać błąd składni w wyrażeniu regularnym. POSIX.2 umożliwia to zachowanie jako rozszerzenie, ale przenośne skrypty powinny go unikać. ZMIENNE ŚRODOWISKOWE WIELKOPOZYCJA Ta zmienna określa opcje domyślne, które mają być umieszczone przed dowolnymi, wyraźnymi opcjami. Na przykład, jeśli GREPOPTIONS jest - binarnym plikiem bez dopasowania - directirector. grep zachowuje się tak, jakby dwie opcje - binary-fileswithout-match i --directoriesskip zostały określone przed jakimikolwiek wyraźnymi opcjami. Specyfikacje opcji są oddzielone białymi spacjami. Backslash ucieka od następnego znaku, więc może być używany do określenia opcji zawierającej białe znaki lub ukośnik odwrotny. LCALL. KOMUNIKATY. LANG Zmienne te określają lokalizację LCMESSAGES, która określa język używany przez grep do wiadomości. Lokalizacja jest określana przez pierwszą z tych zmiennych. Używany jest angielski amerykański, jeśli żaden z tych zmiennych środowiskowych nie jest ustawiony, lub jeśli katalog komunikatów nie został zainstalowany, lub jeśli grep nie został skompilowany z obsługą języka narodowego (NLS). LCALL. LCCTYPE. LANG Te zmienne określają lokalizację LCCTYPE, która określa typ znaków, np. które znaki są białymi. Lokalizacja jest określana przez pierwszą z tych zmiennych. Lokalizacja regionalna POSIX jest używana, jeśli żadna z tych zmiennych środowiskowych nie jest ustawiona, lub jeśli katalog narodowy nie jest zainstalowany, lub jeśli grep nie został skompilowany z obsługą języka narodowego (NLS). POSIXLYCORRECT Jeśli ustawisz, grep zachowuje się w sposób inny niż POSIX.2, grep zachowuje się jak inne programy GNU. POSIX.2 wymaga, aby opcje oparte na nazwach plików domyślnie traktowane były jak nazwy plików, takie opcje są nałożone na przednią listę operandów i są traktowane jako opcje. Również POSIX.2 wymaga, aby nierozpoznane opcje były diagnozowane jako nielegalne, ale ponieważ nie są one niezgodne z prawem, domyślnym jest zdemaskowanie ich jako nieważne. POSIXLYCORRECT także wyłącza N GNUnonoptionargvflags. Opisane poniżej. N GNUnonoptionargvflags (tutaj N jest liczbowym identyfikatorem procesu grep). Jeśli i th znak wartości zmiennej środowiskowej wynosi 1. nie uznaj i th operand grep jest opcją, nawet jeśli wydaje się jeden. Powłoka może umieścić tę zmienną w środowisku dla każdego uruchamianego polecenia, określając, które operandy są wynikiem rozszerzenia symboli wieloznacznych nazw plików, a zatem nie powinny być traktowane jako opcje. To zachowanie jest dostępne tylko w bibliotece GNU C i tylko wtedy, gdy POSIXLYCORRECT nie jest ustawione. DIAGNOSTYKA Zwykle stan wyjścia to 0, jeśli znalezione są mecze, a 1 jeśli nie znaleziono pasujących wyników. (Opcja - v odwraca poczucie statusu wyjścia). Stan wyjścia to 2, jeśli wystąpiły błędy składniowe w wzorze, niedostępne pliki wejściowe lub inne błędy systemowe. Zgłaszaj błędy w wiadomościach do bug-gnu-utilsgnu. org. Pamiętaj, aby umieścić słowo grep gdzieś w polu Temat :. Duża liczba powtórzeń w konstrukcie m, n może powodować, że grep używa dużej ilości pamięci. Ponadto niektóre inne niejasne wyrażenia regularne wymagają czasu i przestrzeni wykładniczej, co może spowodować, że grep przestanie działać. Backreferences są bardzo powolne i mogą wymagać wykładniczej godziny. Linux i Unix grep polecenia grep. co oznacza globalny wydruk wyrażenia regularnego, przetwarza wiersz tekstu po wierszach i drukuje dowolne linie, które pasują do określonego wzoru. składnia grep Grep to potężne narzędzie do dopasowywania wyrażenia regularnego do tekstu w pliku, wielu plikach lub strumieniu danych wejściowych. Przeszukuje PATTERN tekstu podanego w wierszu poleceń i wyświetla wyniki dla Ciebie. Przykładowe użycie Powiedzmy, że chcesz szybko zlokalizować frazę nasze produkty w plikach HTML na swoim komputerze. Pozwala zacząć od wyszukiwania pojedynczego pliku. Tutaj nasz PATTERN to nasze produkty, a nasz plik to product-listing. html. Wykryto pojedynczą linię zawierającą nasz wzór, a grep wyprowadza całą dopasowaną linię do terminala. Linia jest dłuższa niż nasza szerokość terminala, więc tekst zawija się do następujących wierszy, ale to wyjście odpowiada dokładnie jednej linii naszego pliku. Uwaga: PATTERN jest interpretowany przez grep jako wyrażenie regularne. W powyższym przykładzie wszystkie użyte znaki (litery i spacja) są interpretowane dosłownie w wyrażeń regularnych, więc tylko dokładne wyrażenie zostanie dopasowane. Inne znaki mają specjalne znaki, np. Mdash niektóre znaki interpunkcyjne. Więcej informacji można znaleźć w naszym krótkim odsyłaczu do wyrażeń regularnych. Wyświetlanie grep w kolorze Jeśli używamy opcji --color, nasze udane dopasowania zostaną podświetlone dla nas: Wyświetlanie numerów linii udanych dopasowań Będzie to jeszcze bardziej przydatne, jeśli wiemy, gdzie pasuje linia pojawia się w naszym pliku. Jeśli podamy opcję - n, grep będzie prefiksował każdą pasującą linię z numerem linii: Nasza pasująca linia jest poprzedzona numerem 18: informuje, że jest to wiersz 18 w naszym pliku. Przeprowadzanie wyszukiwania z użyciem grepów bez uwzględniania wielkości liter Jeśli produkty pojawiają się na początku zdania lub pojawiają się w wielkich wielkościach Możemy określić opcję - i, aby wykonać dopasowanie wielkości liter: Używając opcji - i, grep znajdzie zgodę w wierszu 23, jak również. Wyszukiwanie wielu plików przy użyciu symboli wieloznacznych Jeśli mamy wiele plików do przeszukiwania, możemy je przeszukiwać używając symboli wieloznacznych w naszej nazwie FILE. Zamiast podać product-listing. html. możemy użyć gwiazdki () i rozszerzenia. html. Gdy polecenie zostanie wykonane, powłoka rozszerzy gwiazdkę na nazwę dowolnego pliku, który znajduje (w bieżącym katalogu), który kończy się. html. Zauważ, że każda linia zaczyna się od konkretnego pliku, w którym występuje ten mecz. Rekurencyjne przeszukiwanie podkatalogów Możemy rozszerzyć nasze wyszukiwanie do podkatalogów i dowolnych plików, które zawierają za pomocą opcji - r, która mówi grep, aby przeprowadzić przeszukiwanie rekurencyjne. Pozwól nam zmienić nazwę FILE na tylko gwiazdkę (), tak aby pasowała do dowolnego pliku lub katalogu, a nie tylko plików HTML: Daje to nam trzy dodatkowe dopasowania. Zauważ, że nazwa katalogu jest dołączona do pasujących plików, które nie znajdują się w bieżącym katalogu. Używanie wyrażeń regularnych do bardziej wydajnych wyszukiwań Prawdziwa moc grepu jest taka, że ​​można ją używać do dopasowywania wyrażeń regularnych. (To, co oznacza w grep). Wyrażenia regularne używają znaków specjalnych w łańcuchu PATTERN, aby dopasować szerszy ciąg ciągów. Przyjrzyjmy się prostemu przykładowi. Powiedzmy, że chcesz znaleźć każde wystąpienie frazy podobne do naszych produktów w plikach HTML, ale frazę należy zawsze zacząć od naszego i na końcu produktów. Możemy określić ten wzór zamiast: our. products. W wyrażeniach regularnych okres (.) Jest interpretowany jako znak wieloznaczny o jednym znaku. Oznacza to, że każdy znak, który pojawi się w tym miejscu, będzie pasować. Gwiazdka () oznacza poprzedzający znak, pojawiający się zero lub więcej razy, będzie pasował. Tak więc kombinacja. pasuje do dowolnej liczby dowolnego znaku. Na przykład nasze niesamowite produkty, nasze, najlepsze produkty, a nawet nasze produkty będą pasować. I ponieważ podano opcję - i, NASZE PRODUKTY i OuRpRoDuCtS również się zgadzają. Pozwala uruchomić polecenie za pomocą tego wyrażenia regularnego i zobaczyć, jakie dodatkowe mecze można uzyskać: Tu otrzymaliśmy również dopasowanie do wyrażenia nasze piękne produkty. Grep to potężne narzędzie, które pomaga w pracy z plikami tekstowymi i staje się jeszcze bardziej wydajne, gdy stajesz się wygodny przy użyciu wyrażeń regularnych. Opis techniczny grep przeszukuje dane wejściowe FILE s (lub standardowe dane wejściowe, jeśli żadne pliki nie są nazwane, lub jeśli jako nazwę pliku podano pojedynczą myśl (-)) dla wierszy zawierających dopasowanie do podanego PATTERN. Domyślnie grep drukuje dopasowane linie. Ponadto trzy wersje programów egrep. Dostępne są fgrep i rgrep: egrep jest taki sam, jak grep - E. W tym trybie grep ocenia ciąg znaków PATTERN jako rozszerzoną ekspresję regularną (ERE). Obecnie ERE nie wykracza daleko poza podstawowe wyrażenia regularne, ale nadal mogą być bardzo przydatne. Aby uzyskać więcej informacji na temat rozszerzonych wyrażeń regularnych, zobacz Podstawowe lub rozszerzone wyrażenia regularne. poniżej. fgrep jest taki sam jak uruchomienie grep - F. W tym trybie grep ocenia ciąg znaków PATTERN jako stały łańcuch znaków mdash, każdy znak w ciągu znaków traktowany jest dosłownie. Jeśli na przykład łańcuch zawiera gwiazdkę (), grep spróbuje dopasować go do rzeczywistego gwiazdki, a nie interpretować to jako znak wieloznaczny. Jeśli ciąg zawiera wiele wierszy (jeśli zawierają linie nowe), każda linia będzie uważana za ciąg stały, a każdy z nich może wywołać dopasowanie. rgrep jest taki sam jak uruchomienie grep - r. W tym trybie grep przeprowadzi wyszukiwanie rekurencyjnie. Jeśli napotka katalog, przechodzi on do tego katalogu i kontynuuje wyszukiwanie. (Linki symboliczne są ignorowane, jeśli chcesz wyszukać katalogi, które są symbolicznie połączone, zamiast tego użyj opcji - R). W starszych systemach operacyjnych, np. fgrep i rgrep były odrębnymi programami z ich własnymi egzotekstami. W nowoczesnych systemach, te specjalne nazwy poleceń są po prostu skrótami do grep z odpowiednimi flagami włączonymi. Są funkcjonalnie równoważne. Opcje ogólne Wydrukuj pomoc, krótko podsumowując opcje wiersza polecenia i zamknij. Jeśli to możliwe, użyj wywołania systemowego mmap, aby odczytać dane wejściowe, zamiast domyślnego połączenia systemowego odczytu. W niektórych sytuacjach --mmap zapewnia lepszą wydajność. Jednak --mmap może powodować niezdefiniowane zachowanie (w tym zrzutów rdzenia), jeśli plik wejściowy zmniejszy się, gdy działa grep lub jeśli wystąpi błąd IO. Traktuj plik jako binarny. Domyślnie w systemach MS-DOS i MS-Windows grep domyśla typ pliku, przeglądając zawartość pierwszego 32KB czytanego z pliku. Jeśli grep decyduje, że plik jest plikiem tekstowym, usuwa znaki CR z oryginalnej zawartości pliku (aby regularnie wyrażać i działać poprawnie). Określenie - U przesądza o tym przypuszczeniu, powodując, że wszystkie pliki są odczytywane i przekazywane do pasującego mechanizmu, jeśli plik jest plikiem tekstowym z parami CRLF na końcu każdego wiersza, co spowoduje, że niektóre wyrażenia regularne ulegną uszkodzeniu. Ta opcja nie ma wpływu na platformy inne niż MS-DOS i MS-Windows. Traktuj dane wejściowe jako zbiór wierszy, każdy z nich kończy się przez zero bajtów (znak ASCII NUL) zamiast nowej linii. Podobnie jak opcja - Z lub --null, ta opcja może być używana w komendach takich jak sort - z, aby przetwarzać dowolne nazwy plików. Wyrażenia regularne Wyrażenia regularne to wzór, który opisuje zestaw ciągów znaków. Wyrażenia regularne są konstruowane analogicznie do wyrażeń arytmetycznych, używając różnych operatorów do łączenia mniejszych wyrażeń. grep rozumie trzy różne wersje składni wyrażenia regularnego: kwbasicquot (BRE), quotextendedquot (ERE) i quotperlquot (PRCE). W GNU grep. nie ma różnicy w dostępnej funkcjonalności między podstawowymi i rozszerzonymi składniami. W innych implementacjach podstawowe wyrażenia regularne są mniej wydajne. Poniższy opis stosuje się do rozszerzonych różnic wyrażeń regularnych w odniesieniu do podstawowych wyrażeń regularnych. Perl wyrażenia regularne dają dodatkową funkcjonalność. Podstawowymi elementami konstrukcyjnymi są wyraŜenia regularne, które pasują do pojedynczego znaku. Większość znaków, w tym wszystkie litery i cyfry, są wyrażeniami regularnymi, które pasują do siebie. Dowolny meta-znak o szczególnym znaczeniu może być cytowany poprzedzając go ukośnikiem odwrotnym. Okres (.) Pasuje do dowolnego pojedynczego znaku. Klasy znaków i wyrażenia nawiasów Wyrażenie nawiasów jest listą znaków zawartą w i. Pasuje do dowolnego pojedynczego znaku z tej listy, jeśli pierwszy znak na liście jest znakiem karetki, a następnie pasuje do dowolnego znaku nie znajdującego się na liście. Na przykład wyrażenie regularne 0123456789 pasuje do dowolnej pojedynczej cyfry. W wyrażeniu nawiasach wyrażenie zakresu składa się z dwóch znaków oddzielonych znakiem łącznika. Pasuje do dowolnego pojedynczego znaku, który sortuje się między dwoma znakami, włączając, używając kolejności zestawiania lokacji i zestawu znaków. Na przykład w domyślnym locale C, a-d jest równoważne abcd. Wiele miejsc ustawia znaki w kolejności słowników, a w tych lokalizacjach a-d zazwyczaj nie jest równoważne abcd, może to być równoważne aBbCcDd. na przykład. Aby uzyskać tradycyjną interpretację wyrażeń nawiasów, można użyć ustawień regionalnych C, ustawiając zmienną środowiskową LCALL na wartość C. Wreszcie niektóre nazwy klas znaków są wstępnie zdefiniowane w nawiasach wyrażeń, jak następuje. Ich nazwy są objaśniające i są: alnum:. : alfa:. : cntrl:. :cyfra: . : wykres:. : dolna:. : drukuj:. : punct:. :przestrzeń: . : górna:. i: xdigit:. Na przykład: alnum: oznacza klasę znaków liczb i liter w bieżącym locale. W kodowaniu regionalnym C i kodowaniu znaków ASCII jest to taki sam wynik jak 0-9A-Za-z. (Zauważ, że nawiasy w tych nazwach klasy są częścią symbolicznych nazw i muszą być uwzględnione w dodatku do nawiasów ograniczających wyraŜenie nawiasów). Większość metadanych traci szczególne znaczenie w wyraŜeniach nawiasów. Aby umieścić dosłowne miejsce na liście. Podobnie, aby umieścić dosłowne miejsce, gdziekolwiek, ale przede wszystkim. Wreszcie, aby włączyć literalne -. umieść to ostatnie. Znak karetki i dolara to meta-znaki, które odpowiadają pustemu ciągowi na początku i końcu wiersza. Znak ukośnika wstecznego i wyrażenia specjalne Symbole lt i gt odpowiadają ciągowi pustemu na początku i końcu słowa. Symbol b pasuje do pustego ciągu na krawędzi słowa, a B odpowiada pustemu łańcuchowi, pod warunkiem, że nie znajduje się na krawędzi słowa. Symbol w jest synonimem: alnum: a W jest synonimem: alnum:. Powtarzanie Po wyrażeniu regularnym może wystąpić jeden z kilku operatorów powtórzeń:

No comments:

Post a Comment