串刺し印刷そのものをよく知らないので、なんか見当違いをしているような気もします。BEGINだけというのもawkスクリプトとしては変則的でしょうね。ご批評くだされ。
★ 総ページ数の計算と、if...else構文を正しくしました(30日21時)
# kusizasinum.awk
#
# 使い方:
# awk -f kusizasinum.awk > num.txt
BEGIN {
# 連番最大数と面付数の入力を求める
printf "最大数=" > "/dev/stderr"
getline maxnum < "/dev/stdin"
printf "面付数=" > "/dev/stderr"
getline mennum < "/dev/stdin"
# 総シート数(ページ数)を計算する # 以下6行訂正しました
n = int ( maxnum / mennum )
if ( maxnum % mennum == 0 ) {
sheetnum = n
} else {
sheetnum = n + 1
}
# i は作業中のシート番号
for ( i = 1; i <= sheetnum; i++ ) {
# j はシート内の面番号
for ( j = 0; j < mennum; j++ ) {
# シート番号がそのシート内最初の連番になり
# 総シート数の値が連番の増分となる
serialnum = i + j * sheetnum
# 連番を標準出力に改行付きで書き出す
# 最大数を超えている場合は改行だけを書き出す
if ( serialnum <= maxnum ) {
print serialnum
} else {
print ""
}
}
}
}
連番を任意の番号から始められるようにした改訂版はこちら。
なお、この経緯についてはスクリプトの達人のみなさんによる次のページを参照してください。
串刺し会長やまさん:These are the days of my life
お話してきました。
串刺し印刷について。
あさうすさん:実験ルーム
串刺し面付けってなぁに?
やもさん:やもめも
あえてScriptを使わずに串刺しナンバリングしてみる(小ネタ)
Kushizashiはワールドワイドに
たけうちとおるさん:たけうちとおるのスクリプトノート
僕もScriptを使わずに串刺しナンバリング
僕もScriptを使って串刺しナンバリング
市川せうぞーさん:名もないテクノ手
あえてScriptを使って串刺しナンバリングしてみる(小ネタ)
chalcedonyさん:
くしざし試作
0 件のコメント:
コメントを投稿