Я написал этот небольшой сценарий оболочки для этой темы очень похож на ваш.
Этот сценарий оболочки + awk прекрасно работает для меня:
#!/bin/bash
awk -v initial_line=$1 -v end_line=$2 '{
if (NR >= initial_line && NR <= end_line)
print $0
}' $3
Используется сэтот пример файла (file.txt):
one
two
three
four
five
six
Команда (она будет извлекать из второй-четвертой строки в файле):
edu@debian5:~$./script.sh 2 4 file.txt
Вывод этой команды:
two
three
four
Конечно, вы можете улучшить его, например, проверив, что все значения аргументов являются ожидаемыми: -)