Если файл имеет строки произвольной длины то для того чтоб определить байт где начинается 99 строка в любом случае придётся читать и анализировать весь файл до неё.
Чтоб не читать файл после конца нужной области:
perl -ne 'print if 81..90; exit if 90..90'<file.txt
(perl не знаю, за кривой код не пинать)
Если длина строк в байтах фиксирована то можно вырезать нужный кусок с помощью dd
А интересно, а можно ли к примеру вывести все до конца файла начиная со строки 2182? что это за конструкция 90..90? Можно ли там как-то применить > < и к чему?
А не. sed отпадает.
$ time head -n181 access_log.15 | tail -n$((181-99+1))>/dev/null 2>&1
real 0m0.003s
user 0m0.008s
sys 0m0.000s
$ ls -lah access_log.15
-rw-r--r-- 1 root root 946M 2006-12-20 00:01 access_log.15
$ time head -n10181 access_log | tail -n10000 >/dev/null
real 0m0.025s
user 0m0.012s
sys 0m0.013s
$ time sed -n '10000,10181p; 10182q' access_log >/dev/null
real 0m0.015s
user 0m0.012s
sys 0m0.003s
$ ls -lh access_log
[skip] 664M access_log