Слова и линии
ограмма Unix для поиска совпадающих шаблонов. Созданная как программа для Unix, ее можно найти в Linux, а также в Mac и BSD. Он может читать практически любой текст, то есть читать входные данные других команд или напрямую открывать и просматривать файлы. Grep безумно полезен, особенно для просмотра каталогов из командной строки.При этом, почему бы не попробовать одно из наиболее распространенных применений Grep — поиск файла в каталоге. Найдите в папке «~/Downloads» изображения в формате «jpg».
ls ~/Downloads | grep .jpg
Grep перечислит их все и выделит часть «.jpg», поскольку это то, что вы искали.
Вы передаете вывод (с помощью команды «|») практически любой команды в grep
. Если у вас есть простой текстовый файл, cat
извлеките его и передайте результат в Grep, чтобы найти определенное слово.
cat file.txt | grep word
Grep распечатает все строки файла, содержащие слово, которое вы указали ему искать.
Забудьте о деле
Unix-подобные системы чувствительны к регистру, а это означает, что «Ubuntu» полностью отличается от «ubuntu». Это может быть проблемой при поиске чего-либо. У Grep есть флаг, позволяющий устранить проблему. Добавьте в поиск флаг -i
, и Grep будет игнорировать регистр.
ls ~/Downloads | grep -i Ubuntu
Поиск в файле
Contents
Забудьте о деле
alt="grep в файле">Было бы не так уж удобно использовать cat
каждый раз, когда вам нужно выполнить поиск в файле. На самом деле это не так. Grep может сам искать файлы. Передайте ему путь к файлу,
Поиск в файле
альное.grep -i word /path/to/file.txt
Рекурсивный поиск
Grep может выполнять поиск по нескольким файлам или каталогам одновременно. Имейте в виду: если вы ищете имена файлов, Grep по умолчанию также будет искать файлы. Флаг -r
указывает Grep на рекурсивный поиск.
ls ~/Downloads | grep -r .deb
Вы также можете сочетать это с другими флагами. Возможно, вы захотите включить флаг -I
при выполнении рекурсивного поиска, чтобы Grep не просматривал двоичные файлы.
ls ~/Downloads | grep -iIr .deb
Найди противоположное
Вы также можете указать Grep искать все, не, содержащее указанный шаблон. Это будет полезно в тех случаях, когда вам нужно найти ошибку или у вас есть каталог с множеством файлов одного или двух типов.
grep -rv '192.168.1.110' /etc/ngРекурсивный поиск
и линииТакже может быть полезно указать Grep искать полные слова или строки, а не что-либо, содержащее определенный шаблон. Представьте, что вы ищете строку символов, которая является общей частью слова, но вам нужно, чтобы она была отдельной. Например, слово «оно». Очевидно, что не так уж часто вам на самом делезахочется искать такой шаблон, как «это», но это доказывает свою точку зрения.
cat textfile.txt | grep -w itВместо того, чтобы распечатывать каждое слово, содержащее шаблон, Grep печатает только само слово. То же самое он делает для целых строк с флагом
-x
, поэтому, если вы ищете фразу или отдельную строку в файле конфигурации, это действительно может помочь.Если вы хотите изучить все, что может сделать Grep, запустите
man grep
в терминале, чтобы получить полную документацию. В этой статье описаны основы и все, что вам обычно нужно от этого мощного инструмента. Поделитесь с нами, если вам известны какие-либо эффекНайди противоположное
оманды Grep.Автор изображения: Shell-скрипт точек интереса с координатами