Более быстрый способ поиска совпадающих шаблонов из внешнего файла grep -f {patternfile} {source} в BASH

В терминале * nix (Bash) существует какой-либо другой более быстрый способ найти шаблон (или исключить их – egrep -v), чем использовать это:

grep -f {patternfile} {source} 

С помощью этой опции для больших файлов очень медленно.

  • Вывод, который будет сохранен в файле с именем, аналогичным входному файлу
  • Извлечь первое слово после шаблона, которое включает ``
  • Как я могу подсчитать количество строк в файле после соответствия grep?
  • Найти все файлы и использовать результат в шаблоне поиска grep
  • Использование egrep для поиска совпадений в файле при выводе конвейера из команды cat
  • Как сохранить консольный ввод в mplayer при чтении из stdin?
  • grep print относительный путь к файлу при выполнении рекурсивного поиска
  • захватить из текстового файла диапазон с использованием двух переменных в качестве начального и конечного параметров
  • 2 Solutions collect form web for “Более быстрый способ поиска совпадающих шаблонов из внешнего файла grep -f {patternfile} {source} в BASH”

    Если ваши шаблоны являются фиксированными строками, посмотрите на agrep ( download ) (или другие матчи, которые основаны на алгоритме У-Манбера). Он будет соответствовать всем шаблонам параллельно.

    У-Манбер обычно хорош для нескольких сотен тысяч моделей (может быть, миллион при толчке).

    Для регулярных выражений я считаю, что в принципе нет быстрого подхода.

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

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

      $ grep -Ffx <(ack -l "pattern1" file) <(ack -l "pattern2" file) 

    Это может быть легко скомпоновано в сценарий Bash, что делает его более общим.

    Interesting Posts

    Перезагрузите файл ~ / .bash_profile из сценария оболочки

    Как установить время и дату из Интернета?

    Vim printoptions не будет принимать два варианта одновременно

    Условное приглашение для меркуриальных

    Поиск файла в каталоге по времени

    Как я удаляю все файлы в каталоге с конкретными расширениями, за исключением последних 5 из них

    Bash при поиске цикла и замене с помощью sed

    Как сделать резервную копию файлов с минимальной системой спасения?

    Что может привести к удалению элемента из моей истории bash?

    Где основная группа определена на основе ядра?

    Изменение пользователя maildir в пользовательское местоположение при создании пользователя

    Требуется специальная проверка сценария оболочки

    Попытки получить аренду DHCP на отключенном интерфейсе ethernet / задержка загрузки

    Использовать другую оболочку по умолчанию в каждом эмуляторе терминала

    Описываются ли дескрипторы файлов при переустановке файловой системы?

    Linux и Unix - лучшая ОС в мире.