я в настоящее время использую длинный конвейер bash
команды для извлечения данных из текстовых файлов, как это, где $ е моего файл:Быстрая альтернатива grep-файлу несколько раз?
result=$(grep "entry t $t " $f | cut -d ' ' -f 5,19 | \
sort -nk2 | tail -n 1 | cut -d ' ' -f 1)
Я использую скрипт, который мог бы сделать сотни подобных поисков $ е , сортировка выбранных строк различными способами в зависимости от того, что я вытаскиваю. Мне нравятся однострочные строки bash
с букетом труб, потому что он компактен и прост, но может потребоваться навсегда. Может ли кто-нибудь предложить более быструю альтернативу? Может быть, что-то, что сначала загружает весь файл в память?
Благодаря
Вы правы: он медленный и будет продолжаться, потому что grep читает с диска, а также ищет строки линейно. Похоже, вы готовы к использованию python и его словарей ... Если вы разместили [mcve] с вашим кодом, образец ввода и ожидаемый результат, я могу что-то придумать. –
, до этого вы могли бы подготовить суб-списки с заранее подготовленными шаблонами, поэтому поиск в этих подписях будет быстрее. –
Трудно сказать, пока вы не представите конкретные примеры того, как выглядят ваши файлы, и чего вы пытаетесь достичь, и какова ваша машина. Возможно, параллельный поиск с помощью GNU Parallel, возможно, 'awk', может быть, Perl. Ваш вопрос очень широк. –