Получите диапазон строк из файла, учитывая запуск и закончите номера строки

Я должен извлечь количество набора строк из файла, учитывая номер строки запуска и закончить номер строки.

Как я мог быстро сделать это под Unix (это - на самом деле Солярис, таким образом, аромат гну не доступен).

Спасибо

19
задан lesmana 9 December 2016 в 16:40
поделиться

3 ответа

Для печати строк 6-10:

sed -n '6,10p' file

Если файл огромный, а номер конечной строки мал по сравнению с количеством строк, можно сделать это более эффективно:

sed -n '10q;6,10p' file

Из тестирования файла с достаточно большим количеством строк:

$ wc -l test.txt 
368048 test.txt
$ du -k test.txt 
24640    test.txt
$ time sed -n '10q;6,10p' test.txt >/dev/null
real   0m0.005s
user   0m0.001s
sys    0m0.003s
$ time sed -n '6,10p' test.txt >/dev/null
real   0m0.123s
user   0m0.092s
sys    0m0.030s
45
ответ дан 30 November 2019 в 02:52
поделиться

вы также можете сделать это с помощью nawk

#!/bin/sh
start=10
end=20
nawk -vs="$start" -ve="$end" 'NR>e{exit}NR>=s' file
0
ответ дан 30 November 2019 в 02:52
поделиться

Или

head -n "$last" file | tail -n +"$first"
0
ответ дан 30 November 2019 в 02:52
поделиться
Другие вопросы по тегам:

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