getno <概要> getno : シーケンシャルな番号を取得する <書式> Usage : getno <num> <file> Option : -r repeat -i<init> initial value at repeat -u unlimited digits -m<max> maximum value -n<range> value range Version : Mon Aug 7 18:33:00 JST 2017 Edition : 1 <説明> <num> で指定した数の連続した番号を、<file> に書かれている次の番号か ら出力します。出力最終番号が <file> に上書きされます。 <file> の読み出しから上書きまでが排他制御されます。 番号は、<file> に書かれている値の桁数の固定長(前0)で出力されます。 桁数の制限は有りません。最大値(ALL 9)を超える出力をしようとした時 はエラーになります。 -u オプションを指定した場合は可変長(前0無し)で出力されます。桁数 の制限は無く、最大値の制限も有りません。-r オプションは併用できませ ん。また <file> の値の前0は意味を持ちません。 -m オプションを指定すると、最大値が <max> になります。<max> の前0は 無視されます。-u オプションの有無にかかわらず、<max> を超える出力を しようとした時はエラーになります。-u オプションを指定していない場合、 <max> の桁数が <file> の値の桁数より大きいとエラーになります。 -r オプションを指定した場合は、最大値まで出力した後、値が初期値(ALL 0)に戻り継続して出力されます。-i オプションで初期値を <init> に変更 できます。<init> の前0は無視されます。<init> の値が最大値を超えてい る場合はエラーとなります。 -n オプションでは値の範囲を指定できます。範囲は加減と上限を "-" で連 結して示します。複数の範囲を "," で連結して指定できます。-m オプショ ンは併用できません。 <例1> fileより3桁の連番を3つ出力 $ cat file 000 $ getno 3 file 001 002 003 $ cat file 003 <- 実行後、file の中身は最後に出力した番号になります。 (注)桁数の最終値を超える指定はエラーとなります。 $ cat file 997 $ getno 5 file Error(559)[getno.NEW] : exceeds the maximum value <- エラー $ echo $? 1 $ cat file 997 <- 3桁なので最大値は 999、出力数指定は5つなので 999 を 超える指定がされている。 <例2> -u オプション(桁数制限なし) $ cat file 097 $ getno -u 5 file 98 <- file の前0は無視されます。 99 100 <- 桁数は自動的に増えます。 101 102 $ cat file 102 <例3> -m オプション(最大値指定) $ cat file 05 $ getno -m8 5 file Error(559)[getno.NEW] : exceeds the maximum value $ cat file 05 $ getno -u -m8 5 file Error(497)[getno.NEW] : exceeds the maximum value $ cat file 05 <例4> -r オプション(繰り返し指定) file より2桁の連番を4つ出力 $ cat file 98 $ getno -r 4 file 98 99 00 <- 99の次は 00 より継続して連番出力 01 $ cat file 01 最大値を指定した場合 $ cat file 30 $ getno -r -m32 4 file 31 32 00 01 $ cat file 01 初期値を指定した場合 $ cat file 017 $ getno -r -i2 4 file 98 99 02 <- 99 の次は指定した値 02 より継続して連番出力 03 $ cat file 03 <例5> -n オプション(範囲指定) $ cat file 017 $ getno -n10-19,100-109 4 file 018 <- 10-19 による出力 019 100 <- 100-109 による出力 101 $ cat file 101 -r オプションを併用した場合 $ cat file 107 $ getno -r -n10-19,100-109 4 file 108 <- 100-109 による出力 109 010 <- 10-19 による出力 011 <注意> このコマンドは、/home/TOOL 下に配置されていないと動作しません。 取得する番号の桁数に制限は有りませんが、個数は 2,147,483,647 個以下 に制限されています。 (備考) NFS でリモートマウントされたディスク上にファイル <file> がある場合、 $ ssh "NFS サーバ" "getno 1 <file>" のように ssh により NFS サーバー上で getno を起動する必要があります。