Tukubaiオンラインコマンドマニュアル - xmldir(1)

xmldir(1)

【名前】

xmldir : ディレクトリタグの絶対パスを指定して、XMLデータをフィールド 形式に変換する。

【書式】

Usage   : xmldir /<DirTag1>/<DirTag2>/.../<DirTagN> [<xmlfile>]
Option  : -c<n>
Version : Sun Aug 28 11:35:26 JST 2022
Edition : 1

【説明】

ディレクトリタグの絶対パスを指定して、絶対パスとすべてのサブツリーの項目、属性、値を出力します。出力は末端のファイルパスに対して1行出力されます。

-cオプションで、指定パスのインデックスが出力されます。-sオプションで設定した文字が空白の代わりに出力されます。

N 階層のパスの場合、インデックスは N 個となり、タグが繰り返されるとインデックスはインクリメントされます。上位のタグがインクリメントされた場合、下位のタグのインデックスは1にリセットされます。

-c <n>の場合、インデックスは前0埋め<n>桁の数字になります。

【例1】 単純な例

$ cat xml
<dir1>
    <dir2>
      <day>23/Jul.2022</day>
      <day>24/Jul.2022</day>
    </dir2>
    <dir2>
      <day>25/Jul.2022</day>
      <day>26/Jul.2022</day>
    </dir2>
</dir1>
$ xmldir /dir1/dir2 xml
dir1 dir2 day 23/Jul.2022
dir1 dir2 day 24/Jul.2022
dir1 dir2 day 25/Jul.2022
dir1 dir2 day 26/Jul.2022
$ xmldir -c3 /dir1/dir2 xml
001 001 dir1 dir2 day 23/Jul.2022
001 001 dir1 dir2 day 24/Jul.2022
001 002 dir1 dir2 day 25/Jul.2022
001 002 dir1 dir2 day 26/Jul.2022

【例2】 テキストに空白を含む例

$ cat xml
<dir1>
    <dir2>
      <day>23 Jul 2022</day>
      <day>24 Jul 2022</day>
    </dir2>
    <dir2>
      <day>25 Jul 2022</day>
      <day>26 Jul 2022</day>
    </dir2>
</dir1>
$ xmldir -s= /dir1/dir2 xml
dir1 dir2 day 23=Jul=2022
dir1 dir2 day 24=Jul=2022
dir1 dir2 day 25=Jul=2022
dir1 dir2 day 26=Jul=2022

【例3】 実用的な例

$ cat xml
<dir1>
	<dir2>
		<attributes>
			<data>a</data>
		</attributes>
	</dir2>
	<dir2>
		<attributes>
			<data>b</data>
			<data>c</data>
		</attributes>
		<attributes>
			<data>d</data>
		</attributes>
	</dir2>
</dir1>
<dir1>
	<dir2>
		<attributes>
			<data>e</data>
		</attributes>
		<attributes>
			<data>f</data>
		</attributes>
		<attributes>
			<data>g</data>
		</attributes>
	</dir2>
</dir1>
$ xmldir -c3 /dir1/dir2/attributes xml
001 001 dir1 dir2 attributes data a
001 002 dir1 dir2 attributes data b
001 003 dir1 dir2 attributes data c
001 004 dir1 dir2 attributes data d
002 005 dir1 dir2 attributes data e
002 006 dir1 dir2 attributes data f
002 007 dir1 dir2 attributes data g

【関連項目】

rjson(1)

Last modified: 2022-08-28 16:55:37