с GNU-grep Вы могли просто сказать
grep --context=10 ...
Я сначала разделил файл на немного меньших как это
$ split --lines=50000 /path/to/large/file /path/to/output/file/prefix
и затем grep на получающихся файлах.
С sed -e '1,N d; M q'
Вы распечатаете строки N+1 через M. Это, вероятно, немного лучше тогда grep -C
, поскольку это не пытается соответствовать строкам к шаблону.
Нет нет, файлы не адресуемы строкой.
нет никакого постоянно-разового способа найти запуск строки n в текстовом файле. Необходимо передать потоком через файл и считать новые строки.
Использование самый простой/самый быстрый инструмент необходимо сделать задание. Мне, с помощью head
делает очень [еще 116] смысл, чем grep
, так как последний является более сложным путем. Я не говорю" grep
, является медленным", это действительно не, но я был бы удивлен, быстрее ли это, чем head
для этого случая. Это было бы ошибкой в head
в основном.
Что относительно:
tail -n +347340107 filename | head -n 100
я не протестировал его, но я думаю, что это работало бы.
Я нашел два другой решения , если Вы знаете номер строки, но ничто иное (не grep возможный):
Принятие Вас нуждаются в строках 20 - 40,
sed -n '20,40p;41q' file_name
или
awk 'FNR>=20 && FNR<=40' file_name