これはうまくいくかもしれません(GNU sed):
sed -r ':a;${s/([^\n]*\n){3}//;q};N;7,$!ba;P;D' file
これは、パターン スペース (PS) で 6 行の移動ウィンドウを作成し、最後の行に遭遇したときにそれらの最初の 3 つを削除することによって機能します。
:aループラベルです
${s/([^\n]*\n){3}//;q}ファイルの最後にある PS の最初の 3 行を削除して終了します。
N改行を追加してから、次の行を PS に追加します。
7,$!ba'への行である(ファイルの最後)への行でない場合は、最初のラベルにループバックします7$16:a
P;D7(ファイルの終わり)までの行範囲については$、PS の最初の改行まで印刷し、最初の改行まで削除し、新しいサイクルを開始します。
1最後から 2 番目の句は、行が6PS に追加されるという点で、デフォルトでウィンドウを作成します。行7から最後まで行が最後に追加され、最初の行が印刷されてから削除されます。
または:
sed -e ':a' -e '$s/\([^\n]*\n\)\{3\}//' -e '$q' -e 'N' -e '7,$!ba' -e 'P' -e 'D' file