🐧5 лучших инструментов CLI для поиска слов с использованием регулярных выражений — Information Security Squad
🐧5 лучших инструментов CLI для поиска слов с использованием регулярных выражений

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

Эти инструменты обычно используются вместе с регулярными выражениями (сокращенно REGEX), которые представляют собой уникальные строки для описания шаблона поиска.

Без лишних слов, давайте перейдем к делу.

1. Команда Grep

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

Grep по умолчанию поставляется в современных дистрибутивах Linux и дает вам возможность возвращать различные результаты поиска.

С помощью grep вы можете выполнять широкий спектр функций, таких как:

  • Искать строки или совпадающие шаблоны в файле.
  • Искать строки или совпадающие шаблоны в файлах Gzip.
  • Подсчитать количество совпадений строк.
  • Вывести номера строк, содержащих строку или шаблон.
  • Рекурсивный поиск строки в каталогах.
  • Выполнить обратный поиск (т.е. отобразите результаты строк, не соответствующих критериям поиска).
  • Игнорировать чувствительность к регистру при поиске строк.

Синтаксис использования команды grep довольно прост:

$ grep pattern FILE
Например, чтобы найти строку «itsecforu» в файле, скажем, hello.txt, игнорируя регистр, выполните команду:
$ grep -i itsecforu hello.txt

2. Команда sed

Sed — сокращение от Stream Editor — еще один полезный инструмент командной строки для управления текстом в текстовом файле.

Sed ищет, фильтрует и заменяет строки в заданном файле неинтерактивным образом.

По умолчанию команда sed выводит результат в STDOUT (стандартный вывод), подразумевая, что результат выполнения выводится на терминал, а не сохраняется в файле.

Команда Sed вызывается следующим образом:

$ sed -OPTIONS command [ file ]
Например, чтобы заменить все экземпляры «Unix» на «Linux», вызовите команду:
$ sed 's/Unix/Linux' hello.txt
Если вы хотите перенаправить вывод, а не выводить его на терминале, используйте знак перенаправления (>), как показано далее:
$ sed 's/Unix/Linux' hello.txt > output.txt

Вывод команды сохранится в файле output.txt, а не выведется на экран.

Чтобы узнать о других параметрах, которые можно использовать, еще раз ознакомьтесь с man-страницами.

$ man sed

3. Команда Ack

Ack — это быстрый и портативный инструмент командной строки, написанный на Perl.

Ack считается удобной заменой утилиты grep и выводит результаты в визуально привлекательной форме.

Команда Ack ищет в файле или каталоге строки, содержащие соответствие критериям поиска.

Затем он выделяет соответствующую строку.

Ack имеет возможность различать файлы на основе их расширений и, в определенной степени, содержимого в файлах.

Синтаксис команды Ack:

$ ack [options] PATTERN [FILE...]
$ ack -f [options] [DIRECTORY...]

Например, чтобы найти слово itsecforu, выполните:

$ ack itsecforu hello.txt

Чтобы установить аск в вашей системе, выполните команду:

$ sudo apt install ack-grep    [На Debian/Ubuntu]
$ sudo dnf install ack-grep    [На CentOS/RHEL]

4. Команда Awk

Awk — это полноценный язык скриптов, а также инструмент для обработки текста и управления данными.

Он ищет файлы или программы, содержащие шаблон поиска.

Когда строка или шаблон найдены, awk выполняет действие с совпадением или строкой и выводит результаты в STDOUT.

Шаблон AWK заключен в фигурные скобки, а вся программа заключена в одинарные кавычки.

Возьмем самый простой пример.

Предположим, вы выводите дату своей системы, как показано далее:

$ date

Предположим, вы хотите вывести только первое значение, то есть день недели.
В этом случае направьте вывод в awk, как показано ниже:
$ date | awk '{print $1}'
Чтобы отобразить последующие значения, разделите их запятой, как показано далее:
$ date | awk '{print $1,$2}'
Приведенная выше команда отобразит день недели и число.

5. Silver Searcher

Silver Searcher — это кроссплатформенный инструмент для поиска кода с открытым исходным кодом, похожий на ack, но с упором на скорость.

Он упрощает поиск определенной строки в файлах в кратчайшие сроки:

$ ag OPTIONS search_pattern /path/to/file
Например, чтобы найти строку «Linux» в файле hello.txt, выполните команду:
$ ag Linux hello.txt

Для дополнительных опций:

$ man ag

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *