Cukup salin baris-baris itu ke hold buffer (lalu hapus mereka) dan ketika pada baris terakhir tambahkan konten hold buffer ke ruang pola:
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
Dengan gnu sedAnda bisa menuliskannya sebagai
some command | sed '1,NUMBER{H;1h;d;};$G'
Inilah cara lain dengan ol ' ed(itu rmenghasilkan keluaran dari some commandke buffer teks dan kemudian moves baris 1,NUMBERsetelah yang $pertama):
ed -s <<IN
r ! some command
1,NUMBERm$
,p
q
IN
Perhatikan bahwa - sebagaimana ditunjukkan - keduanya akan gagal jika output memiliki kurang dari NUMBER+1 baris. Pendekatan yang lebih solid adalah ( gnu sedsintaks):
some command | sed '1,NUMBER{H;1h;$!d;${g;q;};};$G'
yang satu ini hanya menghapus garis dalam rentang itu selama mereka bukan baris terakhir ( $!d) - kalau tidak menimpa ruang pola dengan menahan konten buffer ( g) dan kemudian qmenggunakan (setelah mencetak ruang pola saat ini).