サイト内検索:
tagself : タグファイルから指定したフィールドのデータを取り出す
使い方とオプション
: tagself <tag1> <tag2> .. <tagfile>
--ngthrough
-d<dummy>
-n<string>
-f
タグファイル <tagfile> から指定したフィールドのデータだけを取り出して出力します。
<tagfile> の指定が無いとき、或は、ファイル名が “-” の時は標準入力を読み込みます。
存在しないタグを指定した場合はエラーになりますが、–ngthrough オプションを指定した場合は、そのタグのフィールドを作成し、データ部には "_"を設定します。-d オプションを使うと、他の文字列に変更できます。
出力はタグファイルとなります。
$ cat data
TAG1 TAG2 TAG3 TAG4
aaa1 bbb1 ccc1 ddd1
aaa2 bbb2 ccc2 ddd2
$ tagself TAG2 TAG4 data
TAG2 TAG4
bbb1 ddd1
bbb2 ddd2
–ngthrough オプション
$ tagself --ngthrough TAG2 TAGx TAG4 data
TAG2 TAGx TAG4
bbb1 _ ddd1
bbb2 _ ddd2
–ngthrough オプションと -d オプション
$ tagself --ngthrough -d@@@ TAG2 TAGx TAG4 data
TAG2 TAGx TAG4
bbb1 @@@ ddd1
bbb2 @@@ ddd2
フィールド 0 は、self と同様にレコード全体の指定になります。
$tagself --ngthrough 0 TAGx data
TAG1 TAG2 TAG3 TAG4 TAGx
aaa1 bbb1 ccc1 ddd1 _
aaa2 bbb2 ccc2 ddd2 _
self と同様に部分文字列を指定できます。
$ cat data2
$ tagself TAG1.2 TAG3.2.1 data
TAG1 TAG3
aa1 c
aa2 c
開始位置に負数を指定すると、末尾からの位置を指定することが出来ます。
$ tagself TAG1.-2 data
TAG1
a1
a2
長さに負数を指定すると、フィールド桁数から引いた長さを指定することが出来ます。
$ tagself TAG1.1.-1 data
TAG1
aaa
aaa
タグ名に ‘.’ が含まれる場合は、タグ名を ‘{’ と ‘}’ で囲みます。
$ cat data2
TAG1.1 TAG2.1 TAG3.1 TAG4.1
aaa1 bbb1 ccc1 ddd1
aaa2 bbb2 ccc2 ddd2
$ tagself {TAG1.1} {TAG2.1}.3 data2
TAG1.1 TAG2.1
aaa1 b1
aaa2 b2
部分文字列指定で文字の途中で開始したり、文字の途中となる長さを指定したときはエラーとなります。
$ cat data3
TAG1 TAG2
USP 研究所
$ tagself TAG1.2.4 TAG2 data3
Error(682)[tagself] : Rec.2 error.
-f オプションを指定すると、エラーとならず、mojicut と同様に直前の文字境界の指定となります。
$ tagself -f TAG1.2.4 TAG2 data3
TAG1 TAG2
US 研究所
フィールドの幅より大きい開始位置やフィールドの先頭より前を指定してもエラーとなります。
$ tagself TAG1.20 TAG2 data3
Error(678)[tagself] : Rec.2 error.
$ tagself TAG1.-20 TAG2 data3
Error(660)[tagself] : Rec.2 error.
ただし、-n<string> オプションを指定すると、エラーにならず、そのフィールドが <string> になります。
$ tagself -n_ TAG1.20 TAG2
TAG1 TAG2
_ 研究所
Version : Tue Jun 18 19:00:37 JST 2019
Edition : 3
© 2021 Universal Shell Programming Laboratory site