Я хотел бы эффективно искать несколько сотен файлов журнала для ~ 200 имен файлов.Поиск нескольких сотен имен файлов в нескольких сотнях файлов журнала
Я легко могу это сделать, используя grep
's -f
и поместив иглу (и) в файл.
Однако есть несколько проблем:
- Я заинтересован в эффективном делать это, как и в How to use grep efficiently?
- Я хочу знать все матчи для каждый термин поиска (т.е. имя файла) во всех файлах журнала отдельно.
grep -f
будет соответствовать тому, как он находит иглы в каждом файле. - Я хотел бы знать, когда имя файла не сопоставляется нигде.
2,7 i7 MBP ж/16gb ОЗУ
Использование grep -ron -f needle *
дает мне:
access_log-2013-01-01:88298:google
access_log-2013-01-01:88304:google
access_log-2013-01-01:88320:test
access_log-2013-01-01:88336:google
access_log-2013-01-02:396244:test
access_log-2013-01-02:396256:google
access_log-2013-01-02:396262:google
где needle
содержит:
google
test
Проблемы здесь весь каталог ищется для любого совпадения от needle
, и процесс является однопоточным, поэтому он берет навсегда. Также нет явной информации о том, не удается найти совпадение.
Укажите ли какое-либо из названий файлов пробелы? Кроме того, будут ли времена, когда имя файла добавляется к другому тексту или всегда будет разделяться пробелом/началом строки/конца строки? – Desidero
Как выглядит вывод этого скрипта? – michael501
@Desidero имена файлов не содержат пробелов. Имена файлов могут быть добавлены к другому тексту. Думайте /foor/bar/baz/needle.txt – kayaker243