Есть много открытых вопросов-
- В какой среде вы находитесь? В Un * x вы могли бы просто 'tail -100 input.txt> trimmed.txt'
- Можете ли вы загрузить файл в память или он будет слишком большим?
- Можете ли вы использовать промежуточный файл?
- Какие языки у вас есть в наличии / с кем вы знакомы?
- Как часто вы будете выполнять обрезку? Если вы пишете чаще, чем обрезка, пишите снизу (это быстро) и редко выполняйте дорогостоящую операцию обрезки.
Если у вас есть C, вы можете найти размер файла с помощью fseek(f,0,SEEK_END);long size=ftell(f);
(сразу после открытия f).
Если вам нужно обрезать, вы можете fseek(f,size-desired_size,SEEK_SET);
, а затем while (fgetc(f)!='\n') {}
, что приведет вас к концу линии, которую вы пересекаете.
Затем скопируйте то, что осталось, в новый файл.