Быстрая команда Unix для отображения определенных строк посреди файла?

190
задан Sklivvz 26 April 2016 в 23:11
поделиться

6 ответов

с GNU-grep Вы могли просто сказать

grep --context=10 ...
69
ответ дан 23 November 2019 в 05:35
поделиться

Я сначала разделил файл на немного меньших как это

$ split --lines=50000 /path/to/large/file /path/to/output/file/prefix

и затем grep на получающихся файлах.

12
ответ дан JJD 23 November 2019 в 05:35
поделиться

С sed -e '1,N d; M q' Вы распечатаете строки N+1 через M. Это, вероятно, немного лучше тогда grep -C, поскольку это не пытается соответствовать строкам к шаблону.

2
ответ дан mweerden 23 November 2019 в 05:35
поделиться

Нет нет, файлы не адресуемы строкой.

нет никакого постоянно-разового способа найти запуск строки n в текстовом файле. Необходимо передать потоком через файл и считать новые строки.

Использование самый простой/самый быстрый инструмент необходимо сделать задание. Мне, с помощью head делает очень [еще 116] смысл, чем grep, так как последний является более сложным путем. Я не говорю" grep, является медленным", это действительно не, но я был бы удивлен, быстрее ли это, чем head для этого случая. Это было бы ошибкой в head в основном.

24
ответ дан unwind 23 November 2019 в 05:35
поделиться

Что относительно:

tail -n +347340107 filename | head -n 100

я не протестировал его, но я думаю, что это работало бы.

20
ответ дан JJD 23 November 2019 в 05:35
поделиться

Я нашел два другой решения , если Вы знаете номер строки, но ничто иное (не grep возможный):

Принятие Вас нуждаются в строках 20 - 40,

sed -n '20,40p;41q' file_name

или

awk 'FNR>=20 && FNR<=40' file_name
371
ответ дан Sklivvz 23 November 2019 в 05:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: