Sometimes, it's the simple solutions that elude us... :)
But wait! Compatibility alert! Using a negative line count on head(1) is a GNU extension, and likely won't work with more "traditional" UNIX implementations.
Gilbert
On 04/03/2015 4:10 PM, John Lange wrote:
man head
head --lines=-5 textfile.txt
all but the last 5 lines.
On Wed, Mar 4, 2015 at 3:49 PM, Robert Keizer <robert@keizer.ca mailto:robert@keizer.ca> wrote:
Idea from thread below: | awk '{if(a) print a;a=b;b=$0}' Note that you might want to include a little more logic if you want blanklines in there.. This doesn't store all of it in a file or in ram. http://askubuntu.com/questions/475694/awk-command-to-print-all-the-lines-except-the-last-three-lines On 2015-03-04 3:33 PM, Adam Thompson wrote: > Like Tim said, you first have to know how many lines exist in the file > before you can do anything other than stream processing. > On moderately-sized inputs, "wc -l" works reasonably well. On large > inputs, there's no way to do this efficiently unless you're willing to > sacrifice accuracy. > > F=filename > L=$(wc -l $F) > head -n $(( $L - num_of_ignored_lines )) > > -Adam > > On March 4, 2015 2:36:24 PM CST, Kevin McGregor > <kevin.a.mcgregor@gmail.com <mailto:kevin.a.mcgregor@gmail.com>> wrote: > > Can someone help me out? I'm too tired to think straight. > > Is there an easy/short way to get all BUT the last n lines of a > text file/input? All I can think of is reversing the input line > order and tail +n or something like that. FYI the input is not > very big. > > Kevin