5 лучших инструментов CLI для поиска слов с использованием регулярных выражений, для поиска совпадающих строк или шаблонов в текстовых файлах.
1. Команда Grep
Grep по умолчанию поставляется в современных дистрибутивах Linux и дает вам возможность возвращать различные результаты поиска. С помощью grep вы можете:
Например, чтобы найти строку «itsecforu» в файле, скажем, hello.txt, игнорируя регистр, выполните команду:
2. Команда sed
Sed — сокращение от Stream Editor — еще один полезный инструмент командной строки для управления текстом в текстовом файле. Sed ищет, фильтрует и заменяет строки в заданном файле неинтерактивным образом. По умолчанию команда sed выводит результат в STDOUT (стандартный вывод), подразумевая, что результат выполнения выводится на терминал, а не сохраняется в файле.
Команда Sed вызывается следующим образом:
Например, чтобы заменить все экземпляры «Unix» на «Linux», вызовите команду:
Если вы хотите перенаправить вывод, а не выводить его на терминале, используйте знак перенаправления (>), как показано далее:
Вывод команды сохранится в файле output.txt, а не выведется на экран.
Чтобы узнать о других параметрах, которые можно использовать, еще раз ознакомьтесь с man-страницами.
3. Команда Ack
Ack считается удобной заменой утилиты grep и выводит результаты в визуально привлекательной форме. Команда Ack ищет в файле или каталоге строки, содержащие соответствие критериям поиска. Затем он выделяет соответствующую строку.
Ack имеет возможность различать файлы на основе их расширений и, в определенной степени, содержимого в файлах. Синтаксис команды Ack:
Например, чтобы найти слово itsecforu, выполните:
Чтобы установить аск в вашей системе, выполните команду:
4. Команда Awk
Awk — это полноценный язык скриптов, а также инструмент для обработки текста и управления данными. Он ищет файлы или программы, содержащие шаблон поиска. Когда строка или шаблон найдены, awk выполняет действие с совпадением или строкой и выводит результаты в STDOUT. Шаблон AWK заключен в фигурные скобки, а вся программа заключена в одинарные кавычки.
Возьмем самый простой пример.
Предположим, вы выводите дату своей системы, как показано далее:
Предположим, вы хотите вывести только первое значение, то есть день недели. В этом случае направьте вывод в awk, как показано ниже:
Чтобы отобразить последующие значения, разделите их запятой, как показано далее:
Приведенная выше команда отобразит день недели и число.
5. Silver Searcher
Silver Searcher — это кроссплатформенный инструмент для поиска кода с открытым исходным кодом, похожий на ack, но с упором на скорость.
Он упрощает поиск определенной строки в файлах в кратчайшие сроки:
Например, чтобы найти строку «Linux» в файле hello.txt, выполните команду:
Для дополнительных опций:
1. Команда Grep
Grep по умолчанию поставляется в современных дистрибутивах Linux и дает вам возможность возвращать различные результаты поиска. С помощью grep вы можете:
- Искать строки или совпадающие шаблоны в файле.
- Искать строки или совпадающие шаблоны в файлах Gzip.
- Подсчитать количество совпадений строк.
- Вывести номера строк, содержащих строку или шаблон.
- Рекурсивный поиск строки в каталогах.
- Выполнить обратный поиск (т.е. отобразите результаты строк, не соответствующих критериям поиска).
- Игнорировать чувствительность к регистру при поиске строк.
Код:
$ grep pattern FILE
Код:
$ grep -i itsecforu hello.txt
2. Команда sed
Sed — сокращение от Stream Editor — еще один полезный инструмент командной строки для управления текстом в текстовом файле. Sed ищет, фильтрует и заменяет строки в заданном файле неинтерактивным образом. По умолчанию команда sed выводит результат в STDOUT (стандартный вывод), подразумевая, что результат выполнения выводится на терминал, а не сохраняется в файле.
Команда Sed вызывается следующим образом:
Код:
$ sed -OPTIONS command [ file ]
Код:
$ sed 's/Unix/Linux' hello.txt
Код:
$ sed 's/Unix/Linux' hello.txt > output.txt
Чтобы узнать о других параметрах, которые можно использовать, еще раз ознакомьтесь с man-страницами.
Код:
$ man sed
3. Команда Ack
Ack считается удобной заменой утилиты grep и выводит результаты в визуально привлекательной форме. Команда Ack ищет в файле или каталоге строки, содержащие соответствие критериям поиска. Затем он выделяет соответствующую строку.
Ack имеет возможность различать файлы на основе их расширений и, в определенной степени, содержимого в файлах. Синтаксис команды Ack:
Код:
$ ack [options] PATTERN [FILE...]
$ ack -f [options] [DIRECTORY...]
Код:
$ 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
Код:
$ date | awk '{print $1}'
Код:
$ date | awk '{print $1,$2}'
5. Silver Searcher
Silver Searcher — это кроссплатформенный инструмент для поиска кода с открытым исходным кодом, похожий на ack, но с упором на скорость.
Он упрощает поиск определенной строки в файлах в кратчайшие сроки:
Код:
$ ag OPTIONS search_pattern /path/to/file
Код:
$ ag Linux hello.txt
Код:
$ man ag
Последнее редактирование: