Рубайат Хоссейн
Эл. адрес

Команда grep используется для поиска строк в текстовом файле. Вот десять примеров grep, которые могут вам пригодиться.

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

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

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

кошка <> тестовый файл
Это простой текстовый файл, содержащий
несколько строк, а также некоторые телефонные номера
(555) 555-1234 (567) 666-2345
и электронная почта плюс веб-адреса
[email protected]
https://google.com
ftp://mywebserver.com
КОНЕЦ

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

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

grep "email" тестовый файл

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

grep "пример" / usr / share / dict / американский-английский / usr / share / dict / британский-английский

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

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

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

grep -w "строка" тестовый файл

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

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

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

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

grep -i "этот" тестовый файл

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

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

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

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

ps -ef | grep -c $ ПОЛЬЗОВАТЕЛЬ

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

ls ~ / Музыка | grep -c .mp3

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

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

кот / etc / passwd | grep -n rubaiat

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

grep -n "набор" ~ / .vimrc

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

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

ls ~ / Музыка / | grep ".mp3"

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

ls | grep ".php"

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

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

gzip тестовый файл

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

zgrep электронная почта test-file.gz

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

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

grep '^ [a-zA-Z0-9] \ + @ [a-zA-Z0-9] \ + \. [a-z] \ {2, \}' тестовый файл

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

9. Поиск телефонных номеров с помощью Grep

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

grep '\ (([0-9] \ {3 \}) \ | [0-9] \ {3 \} \) [-] \? [0-9] \ {3 \} [-] \? [0-9] \ {4 \} 'тестовый файл

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

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

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

grep -E "^ (http | https | ftp): [\ /] {2} ([a-zA-Z0-9 \ - \.] + \. [a-zA-Z] {2,4}) "тестовый файл

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

egrep "^ (http | https | ftp): [\ /] {2} ([a-zA-Z0-9 \ - \.] + \. [a-zA-Z] {2,4})" test -файл

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

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

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

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

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

Читать далее

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

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

Ещё от Rubaiat Hossain

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

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

Еще один шаг…!

Пожалуйста, подтвердите свой адрес электронной почты в электронном письме, которое мы вам только что отправили.

.