Мне было интересно, есть ли более эффективный способ выполнить эту задачу. Я работаю с файлами с количеством строк от пары сотен тысяч до нескольких миллионов. Скажем, я знаю, что строки 100 000 - 125 000 - это строки, содержащие данные, которые я ищу. Я хотел бы знать, есть ли быстрый способ вытащить именно эти искомые строки из файла. Прямо сейчас я использую цикл с grep следующим образом:
for ((i=$start_fid; i<=$end_fid; i++))
do
grep "^$i " fulldbdir_new >> new_dbdir${bscnt}
done
Который работает прекрасно, его просто занимает больше времени, чем хотелось бы. И строки содержат больше, чем просто цифры. В основном каждая строка имеет около 10 полей, первая из которых является последовательным целым числом, которое появляется только один раз для каждого файла.
Мне удобно писать на C, если это необходимо.