10 практических примеров команды Linux Grep

10 практических примеров команды Linux Grep

Команда grep обеспечивает доступ к утилите grep, мощному инструменту обработки файлов, используемому для поиска шаблонов в текстовых файлах. Он имеет множество практических вариантов использования и, безусловно, является одной из наиболее часто используемых команд Linux. Это руководство иллюстрирует несколько простых, но полезных команд Linux grep, которые можно использовать в реальной жизни.





Пример файла для демонстрации

Мы создали справочный файл, чтобы помочь читателям лучше понять grep. Вы можете создать копию этого файла, введя следующую команду оболочки в своем терминале.





как загрузить hd-видео на facebook с рабочего стола
cat <> test-file
This is a simple text file that contains
multiple strings as well as some telephone numbers
(555) 555-1234 (567) 666-2345
and email plus web addresses
john@doe.com
https://google.com
ftp://mywebserver.com
END

1. Найти текст в файлах

Чтобы найти текстовый шаблон в файле, просто запустите grep, за которым следует имя шаблона. Также укажите имя файла, содержащего текст.





grep 'email' test-file

Эта команда отобразит строку в нашем тестовый файл который содержит слово Эл. адрес . Вы также можете искать один и тот же текст в нескольких файлах с помощью grep.

grep 'example' /usr/share/dict/american-english /usr/share/dict/british-english

Приведенная выше команда отображает все вхождения слова пример в Американский английский а также Британский английский файлы словарей.



2. Найдите слова с точным соответствием

Команда Linux grep, показанная в предыдущем примере, также выводит список строк с частичными совпадениями. Используйте приведенную ниже команду, если вам нужны только точные вхождения слова.

grep -w 'string' test-file

В или --word-regexp опция grep ограничивает вывод только точными совпадениями. Grep состоит из некоторых дополнительных флагов, которые также можно использовать с командой по умолчанию.





Связанный: Как Grep получил свое название? История создания Grep

3. Игнорировать различия в регистре

По умолчанию grep ищет шаблоны с учетом регистра. Однако вы можете отключить это, если заранее не знаете, в каком случае используется узор.





grep -i 'this' test-file

Использовать или --ignore-case возможность отключения чувствительности к регистру.

4. Подсчитайте количество паттернов.

В -c флаг означает считать . Он отображает количество совпадений, найденных для определенного шаблона. Администраторы могут использовать это для получения конкретной информации о системе.

Вы можете трубить команда ps с помощью grep для подсчета процессов, принадлежащих текущему пользователю.

ps -ef | grep -c $USER

Следующая команда отображает количество MP3 файлы, присутствующие в каталоге.

ls ~/Music | grep -c .mp3

5. Отображение номеров строк, содержащих совпадения

Вы можете найти номера строк, которые содержат определенное совпадение. Использовать -n или --номер строчки вариант grep для этого.

cat /etc/passwd | grep -n rubaiat

Этот параметр особенно полезен для отладки исходных кодов и устранения неполадок в файлах журналов. Чтобы отобразить все числа для строк в ~ / .vimrc которые используются для настройки текстового редактора Vim:

grep -n 'set' ~/.vimrc

6. Найдите имена файлов с помощью расширений

Чтобы получить список всех MP3 файлы, присутствующие в ~ / Музыка каталог:

ls ~/Music/ | grep '.mp3'

Вы можете заменить .mp3 с любыми другими расширениями для поиска определенных файлов. Следующая команда перечисляет все php файлы, присутствующие в текущем рабочем каталоге.

как выбрать учетную запись google по умолчанию
ls | grep '.php'

7. Найдите шаблоны в сжатых файлах

Команда grep в Linux также может находить шаблоны внутри сжатых файлов. Вам нужно будет использовать zgrep команда для этого, однако. Сначала создайте сжатый архив наших тестовый файл набрав:

gzip test-file

Теперь вы можете искать текст или другие шаблоны внутри полученного архива.

zgrep email test-file.gz

8. Найдите адреса электронной почты.

Администраторы также могут отображать адреса электронной почты из текстовых файлов с помощью команды grep в Linux. В следующем примере это делается путем поиска шаблона регулярного выражения.

grep '^[a-zA-Z0-9]+@[a-zA-Z0-9]+.[a-z]{2,}' test-file

Вы можете найти регулярные выражения для выполнения аналогичных задач или создать их самостоятельно, если знаете, как они работают.

9. Найдите номера телефонов с помощью Grep.

Вы можете использовать регулярные выражения grep для фильтрации телефонных номеров из текстового файла. Обратите внимание, что вам придется настроить шаблон, чтобы он соответствовал типу телефонных номеров, которые вам нужны.

grep '(([0-9]{3})|[0-9]{3})[ -]?[0-9]{3}[ -]?[0-9]{4}' test-file

Вышеупомянутая команда отфильтровывает десятизначные американские телефонные номера.

10. Найдите URL-адреса в исходных файлах

Мы можем использовать возможности grep для вывода списка URL-адресов, найденных в текстовых файлах. Приведенная ниже команда печатает все URL-адреса, присутствующие в тестовый файл .

grep -E '^(http|https|ftp):[/]{2}([a-zA-Z0-9-.]+.[a-zA-Z]{2,4})' test-file

Мы снова используем -А ТАКЖЕ опция для расширенных регулярных выражений. Вы также можете использовать egrep команда, чтобы избежать добавления этого.

egrep '^(http|https|ftp):[/]{2}([a-zA-Z0-9-.]+.[a-zA-Z]{2,4})' test-file

Освоение команды Linux Grep

Мы представили несколько полезных примеров команды Linux grep для решения реальных проблем. Хотя эти примеры демонстрируют возможности grep для обработки текста, вам необходимо овладеть регулярными выражениями, если вы хотите добиться максимальной производительности с помощью grep.

Иногда пользователи Linux сталкиваются с определенными ситуациями, когда они не могут вспомнить различные параметры, связанные с командой. Будем надеяться, что операционная система Linux предоставляет вам способы получить справку из командной строки почти для каждой системной утилиты.

Делиться Делиться Твитнуть Эл. адрес 7 способов получить справку из командной строки в Linux

Все основные команды для изучения команд Linux из командной строки

Читать далее
Похожие темы
  • Linux
  • Linux
  • Команды Linux
Об авторе Рубайат Хосейн(Опубликовано 39 статей)

Рубайат - выпускник компьютерных наук с сильной страстью к открытым исходным текстам. Помимо того, что он ветеран Unix, он также занимается сетевой безопасностью, криптографией и функциональным программированием. Он заядлый коллекционер подержанных книг и безгранично восхищается классическим роком.

Ещё от Rubaiat Hossain

Подписывайтесь на нашу новостную рассылку

Подпишитесь на нашу рассылку технических советов, обзоров, бесплатных электронных книг и эксклюзивных предложений!

почему в моем снэпчате только один фильтр
Нажмите здесь, чтобы подписаться
Категория Linux