rank : ランクを付加する
Usage : rank [ref=<ref>] [key=<key>]
<file>
Version : Thu May 8 20:19:17 JST 2014
引数を何も指定しないときは、単純な行番号を付加します。
$ cat data
JPN 杉山______ 26
JPN 崎村______ 27
JPN 梶川______ 27
JPN 柳本______ 30
USA BOB_______ 25
USA GEROGE____ 29
USA SAM_______ 29
USA TOM_______ 35$ rank data
1 JPN 杉山______ 26
2 JPN 崎村______ 27
3 JPN 梶川______ 27
4 JPN 柳本______ 30
5 USA BOB_______ 25
6 USA GEROGE____ 29
7 USA SAM_______ 29
8 USA TOM_______ 35
例2
ref=<ref> で参照フィールドを指定したときは、参照フィールドが変化した
行で、行番号を1に初期化します。ref=1/2 ref=3@2/5 などの連続・不連続
のフィールドを指定することも可能です。
$ rank ref=1 data
1 JPN 杉山______ 26
2 JPN 崎村______ 27
3 JPN 梶川______ 27
4 JPN 柳本______ 30
1 USA BOB_______ 25
2 USA GEROGE____ 29
3 USA SAM_______ 29
4 USA TOM_______ 35
例3
key=<key> で値フィールドを一つだけ指定たときは、値が同じフィールドを
持つ連続したレコードには同じ行番号が付加されます。また、その次の行に
は、先頭から数えた行番号が再び付加されます。ref 指定と同様に連続・不
連続フィールドを指定することも可能です。
$ rank key=3 data
1 JPN 杉山______ 26
2 JPN 崎村______ 27
2 JPN 梶川______ 27
4 JPN 柳本______ 30
5 USA BOB_______ 25
6 USA GEROGE____ 29
6 USA SAM_______ 29
8 USA TOM_______ 35
例4
参照キーが変化するところで、行番号が初期化され、かつ同じ値フィールド
を持つレコードには同じ行番号が振られます。
$ rank ref=1 key=3 data
1 JPN 杉山______ 26
2 JPN 崎村______ 27
2 JPN 梶川______ 27
4 JPN 柳本______ 30
1 USA BOB_______ 25
2 USA GEROGE____ 29
2 USA SAM_______ 29
4 USA TOM_______ 35
*入力ファイルが "-" あるいは無指定の場合は、標準入力から読み込まれ
ます。
*同じ順位を振るかどうかは、値が文字列として同じかどうかで判断してい
ます。(数値としては見ていません)