except logrotate ?? What do you mean?
if you want
For a static/non-open file you can extract the top or bottom of a file using the head and tail cmds.
then to get a copy of the last n lines of a file its
tail -n logfile > newlogfile
1st n lines
head -n logfile > newlogfile
These only take a copy, they don't remove the lines.
If you are prepared to do some programming, many langs eg Perl supply a truncate cmd.