Czasami użytkownicy stają przed koniecznością wyszukiwania określonych informacji w dowolnych plikach. Często dokumenty konfiguracyjne lub inne dane wolumetryczne zawierają dużą liczbę wierszy, więc niemożliwe jest ręczne znalezienie niezbędnych danych. Następnie jeden z wbudowanych poleceń do systemów operacyjnych Linux przychodzi na ratunek, co pozwoli ci znaleźć linie w ciągu kilku sekund.
Treść
Jeśli chodzi o różnice między dystrybucjami Linuksa, w tym przypadku nie odgrywają żadnej roli, ponieważ interesująca komenda grep jest dostępna domyślnie w większości zestawów i jest używana dokładnie w ten sam sposób. Dzisiaj chcielibyśmy przedyskutować nie tylko efekt grep , ale także główne argumenty, które mogą znacznie uprościć procedurę wyszukiwania.
Zobacz także: Szukasz plików w Linuksie
Wszystkie dalsze działania będą wykonywane za pomocą standardowej konsoli, a także umożliwiają otwieranie plików tylko poprzez określenie pełnej ścieżki do nich lub jeśli Terminal jest uruchamiany z wymaganego katalogu. Możesz znaleźć folder nadrzędny pliku i przejść do niego w konsoli w następujący sposób:
cd /home/user/folder
, gdzie użytkownik jest nazwą użytkownika, a folder to nazwa folderu. Użyj polecenia cat + название файла
jeśli chcesz wyświetlić pełną zawartość. Szczegółowe instrukcje dotyczące pracy z tym zespołem można znaleźć w naszym innym artykule pod poniższym linkiem.
Więcej szczegółów: Przykłady komend dla Linuksa
Dzięki powyższym krokom możesz użyć grep , będąc we właściwym katalogu, bez określania pełnej ścieżki do pliku.
Zanim przejdziemy do rozważenia wszystkich dostępnych argumentów, należy zwrócić uwagę na zwykłe wyszukiwanie według zawartości. Będzie to przydatne w tych momentach, kiedy trzeba znaleźć proste dopasowanie według wartości i wyświetlić wszystkie odpowiednie linie.
grep word testfile
, gdzie słowo jest informacją, której szukasz, a testfile jest nazwą pliku. Podczas wyszukiwania poza folderem określ pełną ścieżkę jako w /home/user/folder/filename
. Po wprowadzeniu polecenia naciśnij klawisz Enter . grep -i "word" testfile
. Czasami użytkownicy muszą znaleźć nie tylko dokładne dopasowanie w wierszach, ale także znaleźć informacje, które pojawiają się po nich, na przykład podczas zgłaszania określonego błędu. Wtedy właściwym rozwiązaniem jest zastosowanie atrybutów. Wpisz grep -A3 "word" testfile
w konsoli, aby uwzględnić następujące trzy linie w wyniku po meczu. Możesz napisać -A4
, wtedy zostaną przechwycone cztery linie, nie ma żadnych ograniczeń.
Jeśli zamiast -A
używasz argumentu -B + количество строк
, wynikiem są dane, które są do punktu wejścia.
Argument -С
z kolei przechwytuje linie wokół słowa kluczowego.
Poniżej możesz zobaczyć przykłady przypisania określonych argumentów. Pamiętaj, że musisz wziąć pod uwagę sprawę i umieścić podwójne cudzysłowy.
grep -B3 "word" testfile
grep -C3 "word" testfile
Konieczność zdefiniowania słowa kluczowego, które jest na początku lub na końcu linii, najczęściej występuje podczas pracy z plikami konfiguracyjnymi, gdzie każda linia odpowiada za jeden parametr. Aby zobaczyć dokładny wpis na początku, musisz zarejestrować grep "^word" testfile
. Znak ^ jest odpowiedzialny za użycie tej opcji.
Wyszukiwanie treści na końcu linii odbywa się mniej więcej w ten sam sposób, tylko w cudzysłowach należy dodać znak $ , a polecenie będzie wyglądało tak: grep "word$" testfile
.
Podczas wyszukiwania żądanych wartości użytkownik nie zawsze ma informacje dotyczące dokładnego słowa występującego w ciągu. Następnie można przeprowadzić procedurę wyszukiwania za pomocą liczb, co czasami znacznie upraszcza zadanie. Konieczne jest tylko użycie polecenia w postaci grep "[0-7]" testfile
, gdzie „[0-7]” to zakres wartości, a testfile to nazwa skanowanego pliku.
Skanowanie wszystkich obiektów w tym samym folderze nazywa się rekurencyjnym. Użytkownik musi zastosować tylko jeden argument, który analizuje wszystkie pliki w folderze i wyświetla odpowiednie linie i ich lokalizację. Musisz wpisać grep -r "word" /home/user/folder
, gdzie / home / user / folder jest ścieżką do katalogu do skanowania.
Niebieski wyświetli lokalizację przechowywania plików, a jeśli chcesz pobrać linie bez tych informacji, przypisz inny argument, aby polecenie otrzymało tę grep -h -r "word" + путь к папке
.
Na początku artykułu mówiliśmy już o zwykłym wyszukiwaniu słów. Jednak w tej metodzie dodatkowe wyniki będą wyświetlane w wynikach. Na przykład znajdziesz słowo Użytkownik , ale polecenie wyświetli również Użytkownika 123 , Użytkownika hasła i inne dopasowania, jeśli istnieją. Aby uniknąć tego wyniku, przypisz argument -w
( grep -w "word" + имя файла или его расположение
).
Ta opcja jest również wykonywana, gdy trzeba wyszukać kilka dokładnych słów kluczowych jednocześnie. W takim przypadku wpisz egrep -w 'word1|word2' testifile
. Należy pamiętać, że w tym przypadku litera e jest dodawana do grep , a pojedyncze cudzysłowy są wstawiane.
Rozważane narzędzie jest w stanie nie tylko znaleźć słowa w plikach, ale także wyświetlić linie, w których nie ma wartości określonej przez użytkownika. Następnie przed wprowadzeniem wartości klucza i pliku dodaje się -v
. Dzięki niej po aktywacji polecenia zobaczysz tylko odpowiednie dane.
Składnia grep zebrała kilka dodatkowych argumentów, które można krótko wyjaśnić:
-I
- wyświetla tylko nazwy plików, które spełniają kryteria wyszukiwania; -s
- wyłącza powiadomienia o znalezionych błędach; -n
- wyświetla numer wiersza w pliku; -b
- pokazuje numer bloku przed linią. Nic nie stoi na przeszkodzie, aby użyć wielu argumentów dla jednego znalezienia, wystarczy wpisać je oddzielone spacją, nie zapominając o uwzględnieniu sprawy.
Dzisiaj dokładnie zdemontowaliśmy polecenie grep , dostępne w dystrybucjach Linuksa. Jest jednym ze standardowych i często używanych. Możesz przeczytać o innych popularnych narzędziach i ich składni w naszym oddzielnym materiale pod następującym linkiem.
Zobacz także: Często używane polecenia w terminalu Linux