• XSS.stack #1 – первый литературный журнал от юзеров форума

Мануал/Книга 5 инструментов CLI для поиска слов

lukas

(L3) cache
Пользователь
Регистрация
11.10.2018
Сообщения
282
Реакции
691
5 лучших инструментов CLI для поиска слов с использованием регулярных выражений, для поиска совпадающих строк или шаблонов в текстовых файлах.

1. Команда Grep

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 считается удобной заменой утилиты 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
 
Последнее редактирование:


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх