Используя стандартные команды Unix, вы ничего не можете сделать, кроме как сканировать весь файл.Если вы пишете свою собственную программу, вы можете выполнить двоичный поиск по файлу:
- искать точку в файле,
- читать вперед до следующего начала записи,
- проверьте, является ли отметка времени слишком большой или слишком маленькой,
- и выполняйте итерацию, пока не найдете нужную точку в файле.
Вы можете даже выполнить поиск с помощьюлинейная интерполяция, а не чистый двоичный поиск, если метки времени являются чистыми числами;Вероятно, не стоит дополнительного кодирования, если штампы более сложные, но это зависит от того, как часто вам это понадобится.
Действительно, если вы не собираетесь делать это много и можетеЧтобы продемонстрировать, что производительность является проблемой, я бы выбрал простое решение awk
.