juni

提供: Personal Tukubai for Academic
ナビゲーションに移動 検索に移動

名前

juni : 同一キー内での順位を出力する

書式

使い方とオプション

Usage

juni [<k1> <k2>] <file>
juni key=<key> <file>

Option

-h

説明

第 <k1> フィールドから第 <k2> フィールドまでをキーフィールドとして、同一キーレコード内での順位をレコード先頭に挿入します。

<k1> <k2> を指定しないときは、すべてのレコードが同一キーレコードとみなします。この場合は単純にレコード先頭に行番号を挿入することになりま す。

key=<key> を指定した場合は、以下のように、連続、不連続のキーフィールドを指定することができます。

key=3     第3フィールド
key=3/5   第3,4,5フィールド
key=4@3   第4,3フィールド
key=NF    最終フィールド
key=NF-3  (最終-3)フィールド

-h オプションを指定した場合、各キーフィールドの順位を階層的に出力します。

<file> を指定しない場合、および “-” を指定した場合には、標準入力を読み込みます。

例(その1)

単純に行番号を付番する。

$ cat data
0000007 セロリ 100
0000017 練馬大根 95
0000021 温州みかん 80
0000025 プリンスメロン 70
0000030 じゃが芋 30

$ juni data
1 0000007 セロリ 100
2 0000017 練馬大根 95
3 0000021 温州みかん 80
4 0000025 プリンスメロン 70
5 0000030 じゃが芋 30

例(その2)

キーフィールドを指定して、同一キーを持つレコードブロック内で順位を付番します。

$ cat data
関東 パスタ 100
関東 おにぎり 90
関東 パン 40
九州 おにぎり 150
九州 パン 140
九州 パスタ 100

$ juni 1 1 data
1 関東 パスタ 100
2 関東 おにぎり 90
3 関東 パン 40
1 九州 おにぎり 150
2 九州 パン 140
3 九州 パスタ 100

例(その3)

-h オプションを指定した場合、各キーフィールドの順位を階層的に出力します。

$ cat data
A A1 A11 A111
A A1 A11 A112
A A1 A12 A121
A A1 A12 A122
A A2 A21 A211
A A2 A21 A212
A A2 A22 A221
A A2 A22 A222
B B1 B11 B111
B B1 B11 B112
B B1 B12 B121
B B1 B12 B122
B B2 B21 B211
B B2 B21 B212
B B2 B22 B221
B B2 B22 B222

$ juni -h 1 3 data
1 1 1 A A1 A11 A111
1 1 1 A A1 A11 A112
1 1 2 A A1 A12 A121
1 1 2 A A1 A12 A122
1 2 1 A A2 A21 A211
1 2 1 A A2 A21 A212
1 2 2 A A2 A22 A221
1 2 2 A A2 A22 A222
2 1 1 B B1 B11 B111
2 1 1 B B1 B11 B112
2 1 2 B B1 B12 B121
2 1 2 B B1 B12 B122
2 2 1 B B2 B21 B211
2 2 1 B B2 B21 B212
2 2 2 B B2 B22 B221
2 2 2 B B2 B22 B222

例(その4)

-h オプションでキーを指定しないと、全フィールドをキーフィールドとみなします。

$ juni -h data
1 1 1 1 A A1 A11 A111
1 1 1 2 A A1 A11 A112
1 1 2 1 A A1 A12 A121
1 1 2 2 A A1 A12 A122
1 2 1 1 A A2 A21 A211
1 2 1 2 A A2 A21 A212
1 2 2 1 A A2 A22 A221
1 2 2 2 A A2 A22 A222
2 1 1 1 B B1 B11 B111
2 1 1 2 B B1 B11 B112
2 1 2 1 B B1 B12 B121
2 1 2 2 B B1 B12 B122
2 2 1 1 B B2 B21 B211
2 2 1 2 B B2 B21 B212
2 2 2 1 B B2 B22 B221
2 2 2 2 B B2 B22 B222

例(その5)

-h オプションでは、キーフィールドの位置によらず、上位レベルの順位から出力されます。

$ cat data
A111 A11 A1 A
A112 A11 A1 A
A121 A12 A1 A
A122 A12 A1 A
A211 A21 A2 A
A212 A21 A2 A
A221 A22 A2 A
A222 A22 A2 A
B111 B11 B1 B
B112 B11 B1 B
B121 B12 B1 B
B122 B12 B1 B
B211 B21 B2 B
B212 B21 B2 B
B221 B22 B2 B
B222 B22 B2 B

$ juni -h key=4/2 data
1 1 1 A111 A11 A1 A
1 1 1 A112 A11 A1 A
1 1 2 A121 A12 A1 A
1 1 2 A122 A12 A1 A
1 2 1 A211 A21 A2 A
1 2 1 A212 A21 A2 A
1 2 2 A221 A22 A2 A
1 2 2 A222 A22 A2 A
2 1 1 B111 B11 B1 B
2 1 1 B112 B11 B1 B
2 1 2 B121 B12 B1 B
2 1 2 B122 B12 B1 B
2 2 1 B211 B21 B2 B
2 2 1 B212 B21 B2 B
2 2 2 B221 B22 B2 B
2 2 2 B222 B22 B2 B

備考

rank コマンド

Version and Edition

Version : Tue Jun 18 19:00:37 JST 2019

Edition : 1


© 2021 Universal Shell Programming Laboratory site