Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

sed line range, all but the last line

Tags:

sed

You can specify a range of lines to operate on. For example, to operate on all lines, (which is of course the default):

sed -e "1,$ s/a/b/" 

But I need to operate on all but the last line. You apparently can't use arithmetic expressions:

sed -e "1,$-1 s/a/b/" 

(I am using cygwin in this case, if it makes a difference)

like image 557
Chris Noe Avatar asked Jun 03 '09 21:06

Chris Noe


1 Answers

sed -e "$ ! s/a/b/" 

This will match every line but the last. Confirmed with a quick test!

like image 93
AdamC Avatar answered Sep 30 '22 08:09

AdamC