rone: (Default)
[personal profile] rone

I want to run a command that will give me the contents of a file, except for the last two lines.  I know that tail -2 filename will give me the last two lines of a file, and head -2 filename will give me the first two lines of a file.  Now, tail +2 filename will give me contents of a file, starting with line 2.  It's not a symmetrical option, but i can at least work with that.  However, the head command lacks this elegant mode; otherwise, i would infer that head +3 filename would give me what i want.  Is there a simple command that can do what i want?  I figure i can implement this in some fugly perl script, but that is not the damn point.

Date: 2008-12-05 05:37 pm (UTC)
From: [identity profile] sweh.livejournal.com
sed -e '$d' | sed -e '$d'

nasty but it works and is simple to understand.

sed -e 'N;$!P;$!D;$d'
actually does want you want (but has a bug if the file is only 1 line long).

(I googled that... took 5 seconds "sed all but last 2 lines". Don't think I could have created it on my own since I'm not too good with sed pattern buffer mangling)

Profile

rone: (Default)
entombed in the shrine of zeroes and ones

December 2022

S M T W T F S
    123
45678910
11121314151617
18192021222324
252627282930 31

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 25th, 2025 11:56 am
Powered by Dreamwidth Studios