Chỉ cần sao chép các dòng đó vào bộ đệm giữ (sau đó xóa chúng) và khi trên dòng cuối cùng nối thêm nội dung của bộ đệm giữ vào không gian mẫu:
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
Với gnu sedbạn có thể viết nó như là
some command | sed '1,NUMBER{H;1h;d;};$G'
Đây là một cách khác với ol ' ed(nó rdẫn đầu ra của some commandbộ đệm văn bản và sau đó đặt mcác dòng 1,NUMBERsau la $t one):
ed -s <<IN
r ! some command
1,NUMBERm$
,p
q
IN
Lưu ý rằng - như đã chỉ ra - cả hai sẽ thất bại nếu đầu ra có ít hơn NUMBER+1 dòng. Một cách tiếp cận vững chắc hơn sẽ là ( gnu sedcú pháp):
some command | sed '1,NUMBER{H;1h;$!d;${g;q;};};$G'
cái này chỉ xóa các dòng trong phạm vi đó miễn là chúng không phải là dòng cuối cùng ( $!d) - nếu không nó sẽ ghi đè lên không gian mẫu bằng nội dung bộ đệm giữ ( g) và sau đó là quits (sau khi in không gian mẫu hiện tại).