Я ищу, чтобы вытащить определенные группы строк из больших текстовых файлов (~ 870 000 000 строк). Например, в 50-строчном файле мне могут понадобиться строки 3-6, 18-27 и 39-45.Чтение групп строк из большого текстового файла
от просмотра переполнения стека, я обнаружил, что команда Баш:
tail -n+NUMstart file |head -nNUMend
это самый быстрый способ, чтобы получить одну линию или группу линий, начиная с NUMstart и собирается NUMend. Однако при чтении нескольких групп строк это кажется неэффективным. Обычно техника не имеет большого значения, но с большими файлами она имеет огромное значение.
Есть ли лучший способ сделать это, чем использовать приведенную выше команду для каждой группы линий? Я предполагаю, что ответ скорее всего будет командой bash, но я действительно открыт для любого языка/инструмента, который лучше всего выполнит эту работу.
Мне любопытно, если бы это было намного быстрее, чем 'awk'. – codeforester
сканирует весь файл, не может быть быстрее, чем 'awk' с выходом после последней строки. – karakfa
Добавление '45q' в качестве последней команды исправит это. –