Come for the quick hacks, stay for the epiphanies. | |
PerlMonks |
Re: Edit huge fileby rjt (Curate) |
on Jun 18, 2013 at 23:38 UTC ( [id://1039692]=note: print w/replies, xml ) | Need Help?? |
There is no way to remove bytes from the middle of a file without rewriting it, and there is no way to rewrite it without reading it. However, 500MiB is really nothing, unless you need to access it over a (slow) network or very slow local media such as tape, which is thankfully, finally becoming less common. With typical consumer-level HDDs from a few years ago, you're probably looking at a few seconds. The basic structure would be something like this:
If you need to do something based on line number, use $. to get the current line number. This also leads itself fairly readily to a one-liner if your logic is relatively simple: $ perl -nle 'print unless /^pattern to skip$/ or $. == 10' filename.txt
In Section
Seekers of Perl Wisdom
|
|