tarr : 横型のデータを縦型に展開する。
Usage : tarr [-<n>] [-d<str>] <file>
tarr
[-<n>] [-d<str>] num=<n> <file>
Version : Thu May 25 13:12:38 JST 2017
Edition : 2
(元データ:data)
$ cat data
0000000 浜地______ 50 F 91 59 20 76
0000001 鈴田______ 50 F 46 39 8 5
0000003 杉山______ 26 F 30 50 71 36
0000004 白土______ 40 M 58 71 20 10
$ tarr num=4 data <- 第4フィールドまでをキーに縦に展開
0000000 浜地______ 50 F 91
0000000 浜地______ 50 F 59
0000000 浜地______ 50 F 20
0000000 浜地______ 50 F 76
0000001 鈴田______ 50 F 46
0000001 鈴田______ 50 F 39
0000001 鈴田______ 50 F 8
0000001 鈴田______ 50 F 5
0000003 杉山______ 26 F 30
0000003 杉山______ 26 F 50
0000003 杉山______ 26 F 71
0000003 杉山______ 26 F 36
0000004 白土______ 40 M 58
0000004 白土______ 40 M 71
0000004 白土______ 40 M 20
0000004 白土______ 40 M 10
例2
-<n> オプションを指定すると "<n>" フィールド毎に縦展開します。
$ tarr -2 num=4 data <- 2フィールド毎に縦展開します。
0000000 浜地______ 50 F 91 59
0000000 浜地______ 50 F 20 76
0000001 鈴田______ 50 F 46 39
0000001 鈴田______ 50 F 8 5
0000003 杉山______ 26 F 30 50
0000003 杉山______ 26 F 71 36
0000004 白土______ 40 M 58 71
0000004 白土______ 40 M 20 10
例3
num=<n> を指定しないと、単純に縦展開します。
$ cat data3
1 2 3 4
5 6
$ tarr data3
1
2
3
4
5
6
例4
-d<str> オプションは縦展開するフィールドのフィールドセパレータを指定
します。num=<n> で指定されるキーフィールドは空白区切りでないといけま
せん。
$ cat data4
0000000 浜地______ 50 F 91@59@20@76@54
0000001 鈴田______ 50 F 46@39@8@5@21
0000003 杉山______ 26 F 30@50@71@36@30
0000004 白土______ 40 M 58@71@20@10@6
$ tarr -d@ num=4 data4
0000000 浜地______ 50 F 91
0000000 浜地______ 50 F 59
0000000 浜地______ 50 F 20
0000000 浜地______ 50 F 76
0000000 浜地______ 50 F 54
0000001 鈴田______ 50 F 46
0000001 鈴田______ 50 F 39
0000001 鈴田______ 50 F 8
0000001 鈴田______ 50 F 5
0000001 鈴田______ 50 F 21
0000003 杉山______ 26 F 30
0000003 杉山______ 26 F 50
0000003 杉山______ 26 F 71
0000003 杉山______ 26 F 36
0000003 杉山______ 26 F 30
0000004 白土______ 40 M 58
0000004 白土______ 40 M 71
0000004 白土______ 40 M 20
0000004 白土______ 40 M 10
0000004 白土______ 40 M 6
$ cat data5
0001 1\n2\n3
0002 4\n5\n6
$ tarr -d'\n' num=1 data5
0001 1
0001 2
0001 3
0002 4
0002 5
0002 6例5
-d<str> オプションの <str> を指定しないと、-<n> オプションを文字数と
看做して、その文字数を出力します。字数が不足する場合は、 残り文字す
べてを出力します。空白は特別な意味を持たず、1文字と数えられます。
$ cat data6
0001 abcd efgh ijkl
0002 いろはに ほへとち りぬるを
$ tarr -4 -d num=1 data6
0001 abcd
0001 efg
0001 h ij
0001 kl
0002 いろはに
0002 ほへと
0002 ち りぬ
0002 るを