tagself

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

名前

tagself : タグファイルから指定したフィールドのデータを取り出す

書式

使い方とオプション

Usage

: tagself <tag1> <tag2> .. <tagfile>

Option

--ngthrough
-d<dummy>
-n<string>
-f

説明

タグファイル <tagfile> から指定したフィールドのデータだけを取り出して出力します。

<tagfile> の指定が無いとき、或は、ファイル名が “-” の時は標準入力を読み込みます。

存在しないタグを指定した場合はエラーになりますが、–ngthrough オプションを指定した場合は、そのタグのフィールドを作成し、データ部には "_"を設定します。-d オプションを使うと、他の文字列に変更できます。

出力はタグファイルとなります。

例(その1)

$ cat data
TAG1 TAG2 TAG3 TAG4
aaa1 bbb1 ccc1 ddd1
aaa2 bbb2 ccc2 ddd2

$ tagself TAG2 TAG4 data
TAG2 TAG4
bbb1 ddd1
bbb2 ddd2

例(その2)

–ngthrough オプション

$ tagself --ngthrough TAG2 TAGx TAG4 data
TAG2 TAGx TAG4
bbb1 _ ddd1
bbb2 _ ddd2

例(その3)

–ngthrough オプションと -d オプション

$ tagself --ngthrough -d@@@ TAG2 TAGx TAG4 data
TAG2 TAGx TAG4
bbb1 @@@ ddd1
bbb2 @@@ ddd2

例(その4)

フィールド 0 は、self と同様にレコード全体の指定になります。

$tagself --ngthrough 0 TAGx data
TAG1 TAG2 TAG3 TAG4 TAGx
aaa1 bbb1 ccc1 ddd1 _
aaa2 bbb2 ccc2 ddd2 _

例(その5)

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

例(その6)

タグ名に ‘.’ が含まれる場合は、タグ名を ‘{’ と ‘}’ で囲みます。

$ 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 and Edition

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

Edition : 3


© 2021 Universal Shell Programming Laboratory site