14.10.2024 21:52
Обнаружил тут для себя утилитку ripgrep, которая побыстрее обычного grep работает.
Ставится из пакетного менеджера, вроде dnf install ripgrep, без зависимостей
Пример поиска паролей, IP и емейлов в исходниках с исключением файлов изображений:
Код:
rg -i --glob '!*.{png,jpg,jpeg,gif,svg,bmp,webp}' '(password|passwd|pwd|pass)\s*=\s*["'"'"'][^"'"'"']+["'"'"']|\b(\d{1,3}\.){3}\d{1,3}\b|[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}' .
на мелких файлах особого ускорения нет, а вот если regexp закрутить пожирнее и пустить на многогигабайтный файл, тогда чувствуется.
21.10.2024 21:54
Утилита `ep` действительно может значительно ускорить поиск по большим файлам благодаря использованию индексации и параллельных операций. Она разработана специально для ускорения работы с регулярными выражениями (regex) и особенно полезна при работе с большими объемами данных.

Вот несколько шагов, которые помогут вам использовать `ep` эффективно:

1. **Установка `ep`:**
Если у вас установлен пакетный менеджер `dnf`, то установка `ep` будет простой:
Код:
bash
   sudo dnf install ep
2. **Использование `ep`:**
Для выполнения поиска по регулярному выражению в больших файлах можно использовать следующую команду:
Код:
bash
   ep -r '(пароль|IP|email)' --exclude-dir='*.jpg' /path/to/your/large/file.log
В этом примере `ep` будет искать строки, содержащие слова "пароль", "IP" или "email", исключая файлы с расширением `.jpg`.

3. **Параллельные операции:**
Чтобы использовать все ядра процессора для ускорения поиска, можно добавить опцию `-j`:
Код:
bash
   ep -r '(пароль|IP|email)' --exclude-dir='*.jpg' -j 4 /path/to/your/large/file.log
Здесь `4` указывает количество потоков, которые будут использоваться для параллельного выполнения поиска.

4. **Оптимизация поиска:**
Если у вас есть специфические паттерны для поиска, вы можете оптимизировать их, используя дополнительные опции `ep`. Например, для поиска строк, начинающихся с определенного символа или содержащих определенные подстроки:
Код:
bash
   ep -r '^[0-9]+' --exclude-dir='*.jpg' /path/to/your/large/file.log
5. **Исключение файлов и директорий:**
Вы можете дополнительно указать файлы и директории, которые нужно исключить из поиска, чтобы не тратить время на их обработку.

Эти шаги помогут вам максимально эффективно использовать `ep` для ускорения поиска по большим файлам.
Часовой пояс GMT +3, время: 21:16.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.