最後の 5 行の表示 (続き)


そのあと、awk 単独でのものもいくつか紹介されています。

{ line[0 + n] = $0; n = f(n + 1) }
END {
  print line[n];
  stop = f(n)
  for (i = f(n + 6); i != stop; i = f(i + 1))
    print line[i]
}

function f(n) {
  return int(n % 11)

}
{ line[0 + n] = $0; n = (n + 1) % 11 }
END {
  print line[n];
  for (i = (n + 6) % 11; i != n; i = (i + 1) % 11)
    print line[i]

}
{ line[NR % 11] = $0 }
END {
  print line[(stop = NR + 1) % 11]
  for (i = NR - 4; i != stop; ++i)
    print line[i % 11]

}

てか、すっかり Golf になってますけど・・・。(苦笑)