Po prostu skopiuj te linie do bufora wstrzymania (a następnie je usuń), a gdy w ostatnim wierszu dołącz zawartość bufora wstrzymania do przestrzeni wzorów:
some command | sed '1,NUMBER{ # in this range
H # append line to hold space and
1h # overwrite if it's the 1st line
d # then delete the line
}
$G' # on last line append hold buffer content
Ze gnu sedmożna napisać go jako
some command | sed '1,NUMBER{H;1h;d;};$G'
Oto inny sposób z ol ' ed( rwprowadza wyjście some commanddo bufora tekstowego, a następnie musuwa wiersze 1,NUMBERpo $pierwszym):
ed -s <<IN
r ! some command
1,NUMBERm$
,p
q
IN
Zauważ, że - jak wskazano - oba się nie powiedzie, jeśli wyjście ma mniej niż NUMBER+1 linii. Bardziej solidnym podejściem byłoby ( gnu sedskładnia):
some command | sed '1,NUMBER{H;1h;$!d;${g;q;};};$G'
ten usuwa tylko wiersze z tego zakresu, o ile nie są one ostatnim wierszem ( $!d) - w przeciwnym razie nadpisuje przestrzeń wzorca zawartością bufora wstrzymania ( g), a następnie qusuwa (po wydrukowaniu bieżącej przestrzeni wzorca).