tarr

提供: Personal Tukubai for Academic
2021年6月7日 (月) 08:37時点におけるPt4a editor (トーク | 投稿記録)による版 (Batch Update)
ナビゲーションに移動 検索に移動

名前

tarr : 横型のデータを縦型に展開する。

書式

使い方とオプション

Usage

tarr [-<n>] [-d<str>] <file>
tarr [-<n>] [-d<str>] num=<n> <file>

説明

指定したファイルの、第1フィールド目から “num=<n>” で指定したフィールド数までのフィールドをキーとして、横に並んでいるフィールドデータを縦に展開して並べ直します。

例(その1)

基本的な使い方
(元データ: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 るを

Version and Edition

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

Edition : 2


© 2021 Universal Shell Programming Laboratory site