Более быстрый способ найти соответствие шаблонам из внешнего файла grep-f {patternfile} {источник} в Bash

Я получил ту же проблему, Ваше решение указало на меня на истинную причину (для меня): у Меня всегда был экранный усилитель на, но с самым низким увеличением, 1:1. Так, чтобы путь, я мог изменить увеличение быстро, не устанавливая его на том, прежде чем и в самом низком режиме увеличения (1:1), экран просто будет похож на нормальный экран.

Но!

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

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

2
16.08.2013, 21:27
2 ответа

Если Ваши шаблоны фиксируются строки, взглянули на agrep (загрузка) (или другие matchers, которые основаны на алгоритме Wu-Manber). Это будет соответствовать всем шаблонам параллельно.

Wu-Manber обычно хорош для до нескольких сотен тысяч шаблонов (возможно, миллион при нажатии).

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

2
27.01.2020, 22:14
  • 1
    К сожалению, agrep не поддерживает шаблоны чтения из файла, и для моих аргументов список является слишком длинным. "/usr/bin/agrep: Список аргументов слишком долго" –  tiny 16.08.2013, 13:36
  • 2
    О, не знал, что, я не мог использовать agrep также. Я реализовал Wu-Manber сам, потому что мне было нужно скручивание хотя: соответствие ~200k - 900k шаблоны против 10 + миллион файлов, только сообщите, что соответствия... не предполагают, что это имеет какое-либо применение? –  hroptatyr 16.08.2013, 13:59
  • 3
    Гм, agrep (из ftp.cs.arizona.edu/agrep) действительно поддерживает шаблоны из файла, btw, это -f –  hroptatyr 16.08.2013, 14:01

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

Это однако не обеспечивает способность искать использование файла шаблона. Однако можно использовать этот подход к коаксильному кабелю ack в поиск нескольких шаблонов как так:

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

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

0
27.01.2020, 22:14

Теги

Похожие вопросы